(一)如何带cookies请求
方法一:headers中带cookies
#coding:utf-8
import requests
import re
# 构建url
url = 'http://www.renren.com/923768535'
# 构建请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36',
'Cookie': 'anonymid=j6c96snx6i82ml; _r01_=1; _ga=GA1.2.1361939841.1504226199; depovince=GUZ; JSESSIONID=abcjqMbx6AsKFexLLwC_v; jebe_key=2b511d4c-0b0e-4e77-bcbd-28616d344a3d%7Ceda913e449d4d8cd6ac80727da63a1fe%7C1510156700139%7C1%7C1510156700366; ch_id=10016; jebecookies=5dddc92f-140c-41ef-be32-c6e023d9a0f2|||||; ick_login=28789547-d18b-4142-af78-35fb306907a3; _de=4F1FF60C280AA48B2CD1201DB4C6DF4A; p=1d40e67e3bf905bdc36671554ad798895; first_login_flag=1; ln_uact=17173805860; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; t=3df131639fc50c5fd3189244f8fcd7ba5; societyguester=3df131639fc50c5fd3189244f8fcd7ba5; id=923768535; xnsid=617e5204; ver=7.0; loginfrom=null; wp_fold=0'
}
# 发起请求获取响应
response = requests.get(url,headers=headers)
# 验证是否登陆成功
print (re.findall('迷途',response.content.decode()))
print (response.url,response.status_code)
方法二:get方法参数中带cookies
#coding:utf-8
import requests
import re
# 构建url
url = 'http://www.renren.com/923768535'
# 构建请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36',
}
# 构建cookies
temp = 'anonymid=j6c96snx6i82ml; _r01_=1; _ga=GA1.2.1361939841.1504226199; depovince=GUZ; JSESSIONID=abcjqMbx6AsKFexLLwC_v; jebe_key=2b511d4c-0b0e-4e77-bcbd-28616d344a3d%7Ceda913e449d4d8cd6ac80727da63a1fe%7C1510156700139%7C1%7C1510156700366; ch_id=10016; jebecookies=5dddc92f-140c-41ef-be32-c6e023d9a0f2|||||; ick_login=28789547-d18b-4142-af78-35fb306907a3; _de=4F1FF60C280AA48B2CD1201DB4C6DF4A; p=1d40e67e3bf905bdc36671554ad798895; first_login_flag=1; ln_uact=17173805860; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; t=3df131639fc50c5fd3189244f8fcd7ba5; societyguester=3df131639fc50c5fd3189244f8fcd7ba5; id=923768535; xnsid=617e5204; ver=7.0; loginfrom=null; wp_fold=0'
cookies = {}
for i in temp.split('; '):
cookies[i.split('=')[0]] = i.split('=')[1]
# print (cookies)
# 发送请求获取响应
response = requests.get(url,headers=headers,cookies=cookies)
# 验证登录
print (re.findall('迷途',response.content.decode()))
print (response.url,response.status_code)
(二)session的状态保持。
有了session后,第二次请求是,就不用再传cookies、headers了。
#coding:utf-8
import requests
import re
# 构建url
url = 'http://www.renren.com/PLogin.do'
# 构建headers
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36',
}
# 构建表单数据
post_data = {
'email': '17173805860',
'password': '1qaz@WSX3edc'
}
# 构建session对象
session = requests.session()
# 发送请求模拟登陆
response = session.post(url, headers=headers, data=post_data)
print (response.url)
# 跳转新鲜事
response1 = session.get('http://www.renren.com/923768535')
# 验证登录
print (re.findall('迷途',response1.content.decode()))