淘宝模拟登陆抓取失败
# __author__ = ''
# -*- coding: utf-8 -*-
import requests
import re
s = requests.session()
login_data = {'email': 'xxx', 'password': 'xxx', }
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
'Host':'log.mmstat.com',
'Referer':'https://www.taobao.com/'
}
# post 数据实现登录
s.post('https://login.taobao.com/member/login.jhtml?redirectURL=https%3A%2F%2Fwww.taobao.com%2F', login_data, headers=headers)
# 验证是否登陆成功,抓取'淘宝'首页看看内容
r = s.get('https://www.taobao.com')
print r.text
还是小白
用户名和密码省去嘞
得到的还是未登录时的代码,不知道自己少了什么,有成功的大神能告知一下咩
注意在发送请求的时候附上cookie~
建议在模拟登陆的时候注意下面几点:
自己在浏览器看一下正常登录时发出去的请求:
提交了哪些字段?
带了哪些cookie?
请求的地址是否有参数?
下面是我爬取云南大学图书馆借阅信息的爬虫。云大图书馆登录系统的默认密码是学号后八位。
那么它在提交表单的时候不只是用户名和密码,还有一个隐藏的
lt
字段,这个字段是生成登录表单的时候写在隐藏的input里面,所以必须提取;在post表单的地址里面,还有一个jsessionid字段,这个也是要自己从登陆页面提取加上的;
总之,希望我的解决思路能给你一些引导。
反正见招拆招~
当你模拟的登录信息跟正常提交的信息服务器察觉不出异常的时候,就登陆成功咯~
所以,非常非常重要的一点--- 模仿正常的登录动作,在浏览器的network调试工具里不断琢磨吧。
下面附上我前一段时间写的模拟登陆爬虫
话说为啥是淘宝的地址呢==直接用自己登陆的cookie就好了,知乎好像也还有验证码的