爬虫之模拟登入,Scrapy模拟登陆腾讯网

作者: 网络编程  发布:2019-07-27

 3、因为老是登入 token 和 captcha 都会刷新,由此代码里面不能够写死。那么对于 captcha 小编的管理方式正是把图片下载下来,手动在先后中输入验证码作为参数;那 token 呢?token 笔者早已获得了哟,直接作为参数就能够!

剖判果壳网API

我们先步向微博的登陆页面,输入用户名和密码(为了查看登入时呼吁的api新闻,笔者这里故意把密码输错),点击登陆,查看侧面Network音信。

金沙澳门官网 1

网易登入页

因而Network截取到应用phone_num登陆,所以恳请api为 Data为_xsrf、password、captcha_type和phone_num,其中captcha_type为cn大概en(这里预示着有二种办法实行验证码认证,下边会详细解答的),_xsrf是从上一页面动态获取的(那几个值的获得在底下也可能有解答),phone_num和password为报到手提式有线电话机号和密码。

由此对今日头条登陆要求交给的From Data消息实行剖析得知独有_xsrf那个参数的值是亟需动态获取,而且是从上二个页面(

怎么获得_xsrf?见下图,央求zhihu.com时翻看Response音讯,从页面中寻觅_xsrf值存款和储蓄的职分。

金沙澳门官网 2

万事俱备,只差代码啦,下边附上本身的代码,差一点忘记上面还预留的难题了,那正是From Data中captcha_type对应的是cn和en三种情况,即使在网页登入微博的时候你是看不到验证码的,不过在报到的时候绝对要说飞鹤下验证码(不明了为何作者试了好些个次都尚未在网页上显得出来填写验证码,恐怕是乐乎反爬虫程序员的贰个小套路吧,想询问反爬虫手腕的请看:反爬虫花招),captcha_type假使把它设置成 "cn" 就是倒立文字验证码,设置成 "en" 正是数字乌克兰语验证码,上面小编会把那二种办法的验证码都会亲自过问一下的,上边真正的代码要来了,为了令你们实在的能练习一下,笔者就附上图片啦:

1.针对数字乌克兰语验证码的诀窍:

金沙澳门官网 3

金沙澳门官网 4

金沙澳门官网 5

重在还要求关切一下代码中的cookie,那几个cookie能够在PC端登入成功后,F1第22中学就会找到这一个cookie值,替换一下就能够。

2.针对倒立文字验证码

金沙澳门官网 6

金沙澳门官网 7

金沙澳门官网 8

本着captcha这些参数须要证实一下,它的的"img_size"字段是一向的,每一回都以[200,44],应该正是图片大小的情趣。前边的"input_points"是你点击验证码中倒立文字的坐标,由于验证码中三个文字地方是原则性的,大家借使每一个字都点一下再张开登入,再考察成分来鲜明各类字的坐标就会效仿点击了(是否一语成谶),这些手续自行点击来博取坐标,作者把自己测验好的四个文字坐标依次拿出来:[22.796875,22],[42.796875,22],[63.796875,21],[84.796875,20],[107.796875,20],[129.796875,22],[150.796875,22]金沙澳门官网 ,。

终极再作证一下,当你通过其它的科目在模拟登入的时候会碰着验证码会话无效恐怕请点击图中倒立的文字又只怕请输入验证码等字样的时候,使用上述的化解方案都是可以的,亲测有效,相对有效。。。

嘿嘿,很适意,打算好下班啦。。。

2、token 哪儿来的?是怎么样值?captcha 是图片验证码,怎么管理?作者开掘进行在登录分界面点击用密码登入那么些操作时,实际进行了贰遍GET 诉求,诉求的地方 token,还应该有二个是验证码图片链接。怎么着?有未有很欢腾,必要如何就来什么。

事先爬取携程和51job都避防登录就会爬取数据的,可是明日爬取腾讯网的时候就须要报到后技艺爬到多少,那大家只可以进展模拟登陆了。

天涯论坛登四分为邮箱登录和手提式有线话机签到三种艺术,通过浏览器的开采者工具查看,大家因此分化方法登入时,网址是不等同的。邮箱登陆的地址email_url = ' = '

 缓慢解决思路

Scrapy爬虫教程四 Scrapy Selenium有浏览器分界面模拟登陆新浪

金沙澳门官网 9

Scrapy爬虫教程一 Windows下安装Scrapy的秘诀和主题素材计算

金沙澳门官网 10

Scrapy爬虫教程三 详细的Python Scrapy模拟登录腾讯网

''' 第一步 '''
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
r=requests.get('http://post.xiaohongshu.com/api/homerus/login/captcha')
token = json.loads(r.text)['data']['token']     # get请求到的token
#print token
img_url=json.loads(r.text)['data']['url']
picture = opener.open(img_url).read()
local = open('F:/code.jpg', 'wb')               # 保存验证码到本地
local.write(picture)
local.close()
''' 第二步 '''
secret_code = raw_input('输入验证码: ')
login_data = {
   'phone': '136****0000',
   'passwd': 'XXXXXXXXXXXX',
   'token': token,                             # 获取的token
   'captcha': secret_code,                     # 手动输入的验证码
   'zone': '86'
}
headers = {'content-type': 'application/json'}  # payload请求方式
res = requests.post('http://post.xiaohongshu.com/web_api/sns/v1/homerus/user/login_with_passwd'
                   ,data=json.dumps(login_data),headers=headers)                                                      # 模拟登录
header={ ''' 第三步 '''
   'Accept': 'application / json, text / plain',
   'Connection': 'keep - alive',
   'Cookie': res.headers['Set-Cookie'].replace(' Path=/','') 'xhs_spid.6d29=21fa0111a09b6c3c'
                        '1516671392.1.15166716811516671392.6d3c3921-2e47-4cbe-b695-698499ac4636; xhs_spses.6d29=*',   # 登录成功的cookie拼装在header
   'Referer': 'http: // post.xiaohongshu.com /',
   'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
resp = requests.get('http://post.xiaohongshu.com/web_api/sns/v1/homerus/note/list?page=1&page_size=200',headers=header)
data = json.loads(resp.text)

Scrapy爬虫教程五 爬虫布置

 

金沙澳门官网 11

 二、token 间接当做参数,验证码手动输入,加上账号、密码、区号作为post 诉求登陆的参数;

 由此化解该模拟登陆进度一共三步:

Scrapy爬虫教程二 浅析最烦人的反爬虫手段

 1、在登录界面点击用密码登陆,输入账号密码验证码,通过 chrome 调节和测量试验工具查看央求的 header 会开掘,登陆时是经过 POST 格局,须求的莫过于地址是: 值,个中 zone 是指你所在的国家的区号,比方中夏族民共和国为 86,因此值为 86。那么这里管理相比不方便的正是 token 和 captcha

Python学习沟通群:238757010

网络有很多模拟登陆今日头条豆瓣等网址的教程和代码,但小红书这一个平台一般不太受用,那些思路对于众多急需登录技巧查看数据的网址都应当有协理,由此分享在此地供参谋。

本文由金沙澳门官网发布于网络编程,转载请注明出处:爬虫之模拟登入,Scrapy模拟登陆腾讯网

关键词: 金沙澳门官网

上一篇:Smobiler能让你在Visual,4已正式发布
下一篇:没有了