python 网络爬虫——cookie的使用
来源:互联网 发布:黑色沙漠游侠捏脸数据 编辑:程序博客网 时间:2024/06/18 17:36
什么是cookie?
- Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)
客户端访问服务器的过程
为什么要使用cookie模拟登陆?
- 有些网站需要登陆后才能访问摸个页面,在登陆之前,我们想访问某个页面内容是不允许的,那么我们可以利用urllib2库保存我们登陆的cookie,然后在利用这个cookie在抓取页面上的信息。
Cookielib模块
- cookielib模块的主要作用是提供可存储cookie的对象,以便与urllib2模块配合使用来访问Internet资源。我们可以利用这个模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登陆功能。
父类 CookieJar派生 FileCookieJar 派生 MozillaCookieJar LWPCookieJar
获取cookie
import urllib2,urllib#用来管理cookie的包import cookieliburl = 'http://www.baidu.com'cookie = cookielib.CookieJar() #1.创建cookie对象cookie_handler = urllib2.HTTPCookieProcessor(cookie) #2.创建cookie管理器opener = urllib2.build_opener(cookie_handler) #3.创建一个新的opener对象response = opener.open(url) #4.使用opener对象发起请求接收响应for i in cookie: #查看cookie print i`###将cookie保存到文件中去查看输出:<Cookie BAIDUID=41667EBB76B45C1525CE362140D100C8:FG=1 for .baidu.com/><Cookie BIDUPSID=41667EBB76B45C1525CE362140D100C8 for .baidu.com/><Cookie H_PS_PSSID=1437_19036_21118_18560 for .baidu.com/><Cookie PSTM=1502460120 for .baidu.com/><Cookie BDSVRTM=0 for www.baidu.com/><Cookie BD_HOME=0 for www.baidu.com/>
将cookie保存到文件
import urllib2,urllib#用来管理cookie的包import cookieliburl = 'http://kaoshi.com:8888/edustu/login/login.spr' #网址已更改#参数gold = { 'j_username':'1521231275', #这里我随便写的,可以用火狐firebug查看请求参数 'j_password':'123456',}#编码date = urllib.urlencode(gold)headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) ' 'Gecko/20100101 Firefox/54.0',}#创建request请求对象request = urllib2.Request(url,data=date,headers = headers) #相当于自己新创建了一个urlfilename = 'cookie.txt' #cookiecookie2 = cookielib.MozillaCookieJar(filename = filename) #1.创建cookie对象cookie_handler= urllib2.HTTPCookieProcessor(cookie2) #2.创建cookie管理器opener = urllib2.build_opener(cookie_handler) #3.创建一个新的opener对象response = opener.open(request) #4.使用opener对象发起请求接收响应cookie2.save(ignore_discard= True,ignore_expires=True)
查看文件:
save()方法
def save(self, filename=None, ignore_discard=False, ignore_expires=False)
官方解释如下:
ignore_discard: save even cookies set to be discarded.
ignore_expires: save even cookies that have expiredThe file is overwritten if it already exists
ignore_discard的意思是及时cookie将被求其也保存下来
ignore_expires的意思是如果在改文件中cookie已经存在,则覆盖原文件写入
利用cookie文件模拟用户登录
import urllib2import cookieliburl = 'http://kaoshi.com:8888/edustu/me/edu/meda.spr' #已更改headler = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) ' 'Gecko/20100101 Firefox/54.0',}#创建request请求对象request = urllib2.Request(url,headers = headler)#创建cookie对象cookie = cookielib.MozillaCookieJar()#加载cookie文件cookie.load(filename='cookie.txt',ignore_discard=True,ignore_expires=True)#创建cookie管理器cookie_handler = urllib2.HTTPCookieProcessor(cookie)#创建open对象opener = urllib2.build_opener(cookie_handler)#发送请求resp = opener.open(request)print resp.read()
可以看到那到的是登录后的页面源代码
总结:
- 其实现在对于cookie的操作,我也只是限于这些简单的cookie利用,如何更加深入的利用cookie现在还是做不到,等以后更加深入的学习再2继续更新cookie的利用。
阅读全文
0 0
- python 网络爬虫——cookie的使用
- python爬虫cookie的使用
- Python爬虫Cookie的使用
- 《python爬虫学习》:Cookie的使用
- python 爬虫cookie的简单使用
- Python爬虫三(Cookie的使用)
- python爬虫中cookie的使用
- python爬虫之Cookie的使用
- Python爬虫入门:Cookie的使用
- Python爬虫教程——入门六之Cookie的使用
- 网络爬虫-使用Cookie登陆
- python-网络爬虫初学四:cookie的存储与读取
- python网络爬虫系列教程——python中urllib、urllib2、cookie模块应用全解
- Python爬虫—破解JS加密的Cookie
- Python——网络爬虫
- Python爬虫入门六之Cookie的使用
- python爬虫 - Urllib库及cookie的使用
- Python爬虫入门六之Cookie的使用
- 输出前m大的数
- Linux DM9000网卡驱动程序完全分析
- 解决axios跨域请求出错的问题
- 队列
- Set,List,Map,Vector,ArrayList的区别
- python 网络爬虫——cookie的使用
- jquery.validate.js 的简单使用教程
- java.lang.OutOfMemoryError: PermGen space
- 写实用的小程序——二次根式的化简
- 题目779-兰州烧饼
- systool指令
- 从怎样解题到怎样解决问题
- stm32 窗口看门狗 WWDG
- Angular 关于获取Matrix URL 和 普通URL 查询字符串问题