爬虫(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))

 

posted @ 2018-05-30 15:43  高圈圈  阅读(202)  评论(0编辑  收藏  举报