admin 管理员组文章数量: 887016
一、前言
大概是一个月前就开始做淘宝的爬虫了,从最开始的用selenium用户配置到selenium模拟登录,再到这次的post请求模拟登录。一共是三篇博客,记录了我爬取淘宝网的经历。期间也有朋友向我提出了不少问题,比如滑块失败,微博登录失败等,可以说用selenium模拟登录这方面,坑特别多,直接加载用户配置又很笨重,效率低下。所以这次尝试构造post请求表单,模拟登录。
二、模拟登录
1)用浏览器走一遍登录过程
先把淘宝网的cookies全部清除,然后访问淘宝:https://www.taobao,这时候是不需要登录的。
在搜索框搜索iphone,立即跳出了登录页面,它的url是:https://login.taobao/member/login.jhtml?redirectURL=http%3A%2F%2Fs.taobao%2Fsearch%3Fq%3Diphone%26imgfile%3D%26commend%3Dall%26ssid%3Ds5-e%26search_type%3Ditem%26sourceId%3Dtb.index%26spm%3Da21bo.2017.201856-taobao-item.1%26ie%3Dutf8%26initiative_id%3Dtbindexz_20170306&uuid=f6dd176ff336683f5d47fc1cb16504af
很长很长,但标红的这部分url很重要,redirectURL是重定向url,登录后会跳转到这个url,当然这个是经过url编码的。
其余后面的参数很乱,不知道有用没用,先试一下,把后面的参数去掉,访问https://login.taobao/member/login.jhtml?redirectURL=http%3A%2F%2Fs.taobao%2Fsearch%3Fq%3Diphone看看能不能行:
可以进入登录页面,那能不能登录呢?
好,正如上面所说,跳转到了这个url。
2)用抓包工具分析登录过程
既然可行,那么接着再来一次,这次看看这个过程都发起了哪些请求,提交了哪些数据。(别忘记清除cookies)
可以使用浏览器开发者模式也可以使用抓包工具Fiddler,使用浏览器的话要打开Preserve log
我用的是Fiddler
设置抓取的User-Agents为Chrome
直接访问:https://login.taobao/member/login.jhtml?redirectURL=http%3A%2F%2Fs.taobao%2Fsearch%3Fq%3Diphone
点击登录。查看请求记录。
这是两个非常重要的url
第一个是最开始访问的登录页面,一个普通的get请求,第二个就不同了,它是一个post请求,其中表单包含了大量的数据信息
内容虽然很多,但经过我多次的测试和比对后,发现了如下几条规律:
1、loginId一眼就可以看出是账号,ua猜测为一种加密后的用户标识,password2猜测为加密后的密码。这三条信息可以当作固定值反复使用
2、_csrf_token, umidToken, hsiz隐藏在登录页面里
3、其他的都是不变的
3)代码实战
文件名为login.py,类名为Login
class Login:
"""
模拟登录并获取cookies
"""
def __init__(self, u
版权声明:本文标题:post请求跳转页面_Python post请求模拟登录淘宝并爬取商品列表! 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732176705h1525171.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论