再往下所有的操作都是用opener.open方法去发送请求,因为这里面带着cookie过去了。
2、登录人人网
import urllib.requestimport urllib.parseimport http.cookiejar# 真实的模拟浏览器,当发送完post请求的时候,将cookie保存到代码中# 创建一个cookiejar对象cj = http.cookiejar.CookieJar()# 通过cookiejar创建一个handlerhandler = urllib.request.HTTPCookieProcessor(cj)# 根据handler创建一个openeropener = 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://www.renren.com/966236794' }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())