欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python3网络爬虫(3):Python3使用Cookie-模拟登陆

程序员文章站 2022-05-02 10:02:55
...

Python版本:Python3.x

IDE:Mac ,Pycharm

一、为什么要使用Cookie

Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。 
比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容,登陆前与登陆后是不同的,或者不允许的。 
使用Cookie和使用代理IP一样,也需要创建一个自己的opener。在HTTP包中,提供了cookiejar模块,用于提供对Cookie的支持。


http.cookiejar功能强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。

它们的关系: CookieJar–派生–>FileCookieJar–派生–>MozillaCookieJar和LWPCookieJar

工作原理:创建一个带有cookie的opener,在访问登录的URL时,将登录后的cookie保存下来,然后利用这个cookie来访问其他网址。查看登录之后才能看到的信息。

代码

# -*- coding: UTF-8 -*-

import urllib.request
from http import cookiejar
from http import cookies
from urllib import parse


#通过cookieJar类构建一个cookieJar对象,用来保存cookie的设置、

cookie=cookiejar.CookieJar()
#通过一个HttpCookieProcessor()处理器类构建一个处理器对象,用来处理cookie
#参数就是构建的cookieJar对象、
cookie_handle=urllib.request.HTTPCookieProcessor(cookie)
opener=urllib.request.build_opener(cookie_handle)
#人人网登陆接口
url='http://www.renren.com/PLogin.do'
data1={"email":"aaa@qq.com","password":"dc***"}

#通过urlencode()编码转换
data=urllib.parse.urlencode(data1).encode('utf-8')

request=urllib.request.Request(url,data=data)
response=opener.open(request)
print(response.read().decode('utf-8'))

Python3网络爬虫(3):Python3使用Cookie-模拟登陆

通过返回的html信息,我们可以看出登录已经成功,并且获取到本人的用户信息。
本文参考了此篇博客http://blog.csdn.net/c406495762

相关标签: cookie python爬虫