爬虫(cookie)——renren模拟登陆
工具:python3
步骤:
1)使用cookiejar.CookieJar()构建一个CookieJar()构建一个对象,用来保存cookie的值
2)使用HTTPCookieProcessor()构建一个处理器对象,用来处理cookie
3)使用build_opener构建自定义opener
4))使用opener的addheaders参数添加请求头参数
5)构造url和data
6)使用Request()构造请求
7)使用opener.open()发送请求
8)读取响应信息
import urllib.request from http import cookiejar # 通过CookieJar()类构建一个cookieJar()对象,用来保存cookie的值 cookie = cookiejar.CookieJar() # 通过HTTPCookieProcessor()处理器类构建一个处理器对象,用来处理cookie cookie_handler = urllib.request.HTTPCookieProcessor(cookie) # 构建一个自定义的opener opener = urllib.request.build_opener(cookie_handler) # 通过opener的addheaders参数可以添加HTTP报头参数,参数为元组类型 opener.addheaders = [("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36")] # renren网的登录接口 url = "http://www.renren.com/PLogin.do" # 需要登陆的账户密码 data = {"email":"xxx", "password": "xxx"} data = urllib.parse.urlencode(data) # data = bytes(data, encoding="utf8") # 第一次是post请求,发送登陆需要的参数,获取cookie request = urllib.request.Request(url, data=data) # 发送第一次的post请求,生成登录后的cookie response = opener.open(request) response = response.read() response = response.decode("utf-8") with open("renren.html","w") as f: f.write(str(response))