您的位置:首页 > 其它

爬虫突破登录壁垒-2:使用cookies

2018-02-05 11:21 169 查看
@通过cookies突破登录壁垒

在《壁垒-1》中我们模拟用户名、密码、验证码的方式实现了登录

在其抓包的过程中,我们发现服务端是给我们返回了cookies的,cookies的作用即在于记录用户信息

我们直接把登陆成功后的cookies拿来丢在请求头里,其效果和我们使用用户名密码登录是完全一致的



@将cookies重构为字典,并添加到会话对象中

# 在浏览器中登录,抓包获取的cookies,我们直接拿来丢在请求头,其效果和实际登录是完全一致的
cookies_info = {
'ASP.NET_SessionId' : 'bcsgvys4lif3ckn2ntgi2fee',
'__qc_wId' : '928',
'pgv_pvid' : '1193279241',
'Hm_lvt_04660099568f561a75456483228a9516' : '1514357387',
'__qc__k' : '',
'codeyzgswso' : '390de3471712da5f',
'Hm_lpvt_04660099568f561a75456483228a9516' : '1514360366',
'gswEmail' : '1090509990%40qq.com',
'gsw2017user' : '167606%7c6A5471B38CFFFF27880E4F7E9679CF7A',
'idsShiwen2017' : '%2c8150%2c49386%2c7722%2c',
}

sess = requests.session()

# 将 cookies 信息加入会话中
for k, v in cookies_info.items():
sess.cookies[k] = v

# print(sess.cookies)
# print(type(sess.cookies))


@直接使用cookies免登陆发送业务请求

# cookies免登陆发起业务请求
response = sess.get(url='http://so.gushiwen.org/user/collect.aspx', headers=headers_3)
print(response.text)


@完整代码

headers_3 = {
'Host': 'so.gushiwen.org',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Referer': 'http://so.gushiwen.org/user/collect.aspx',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
}

# 在浏览器中登录,抓包获取的cookies,我们直接拿来丢在请求头,其效果和实际登录是完全一致的
cookies_info = {
'ASP.NET_SessionId': 'bcsgvys4lif3ckn2ntgi2fee',
'__qc_wId': '928',
'pgv_pvid': '1193279241',
'Hm_lvt_04660099568f561a75456483228a9516': '1514357387',
'__qc__k': '',
'codeyzgswso': '390de3471712da5f',
'Hm_lpvt_04660099568f561a75456483228a9516': '1514360366',
'gswEmail': '1090509990%40qq.com',
'gsw2017user': '167606%7c6A5471B38CFFFF27880E4F7E9679CF7A',
'idsShiwen2017': '%2c8150%2c49386%2c7722%2c',
}

# 将 cookies 信息加入会话中
sess = requests.session()
for k, v in cookies_info.items():
sess.cookies[k] = v

# print(sess.cookies)
# print(type(sess.cookies))

# cookies免登陆发起业务请求
response = sess.get(url='http://so.gushiwen.org/user/collect.aspx', headers=headers_3)
print(response.text)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: