# 创建一个cookiejar对象
cj = http.cookiejar.CookieJar()
# 通过cookiejar创建一个handler
handler = urllib.request.HTTPCookieProcessor(cj)
# 根据handler创建一个opener
opener = urllib.request.build_opener(handler)
再往下所有的操作都是用opener.open方法去发送请求,因为这里面带着cookie过去了。
2、登录人人网
import urllib.request
import urllib.parse
import http.cookiejar
# 真实的模拟浏览器,当发送完post请求的时候,将cookie保存到代码中
# 创建一个cookiejar对象
cj = http.cookiejar.CookieJar()
# 通过cookiejar创建一个handler
handler = urllib.request.HTTPCookieProcessor(cj)
# 根据handler创建一个opener
opener = urllib.request.build_opener(handler)
post_url = 'http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2018522142620'
formdata = {
'email': '******',
'icode': '',
'origURL': 'http://www.renren.com/home',
'domain': 'renren.com',
'key_id': '1',
'captcha_type': 'web_login',
'password': '2dfc34bafb068fa4d5833e13261b466e41eaf211d084678dbd7a99086b062c4f',
'rkey': '0d88e6463b16b1fd549703fd02aa5ecf',
'f': 'http%3A%2F%2Fwww.renren.com%2F966236794'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
}
request = urllib.request.Request(url=post_url, headers=headers)
formdata = urllib.parse.urlencode(formdata).encode()
response = opener.open(request, data=formdata)
#登录进人人网
# print(response.read().decode())
#获取个人信息页面
get_url = 'http://www.renren.com/966236794/profile'
request = urllib.request.Request(url=get_url, headers=headers)
response = opener.open(request)
with open('renren_profile.html','w+') as fp:
fp.write(response.read().decode())