Python3网络爬虫(3):Python3使用Cookie-模拟登陆 - Go语言中文社区

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


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":"304774164@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'))

这里写图片描述

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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_31927785/article/details/78341028
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-06 09:26:43
  • 阅读 ( 1226 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢