python爬虫之http.CookieJar库
我们在使用爬虫的时候,经常会用到cookie进行模拟登陆和访问。在使用urllib库做爬虫,我们需要借助http.cookiejar库中的CookieJar来实现,CookieJar类管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。
使用cookie管理session步骤是:
- 创建CookieJar 对象或其子类的对象,负责处理cookie
- 以 CookieJar 对象为参数,创建 urllib.request.HTTPCookieProcessor 对象,该对象负责调用 CookieJar 来管理 cookie
- 以 HTTPCookieProcessor 对象为参数,调用 urllib.request.build_opener() 函数创建 OpenerDirector 对象
- 使用 OpenerDirector 对象来发送请求,该对象将会通过 HTTPCookieProcessor 调用 CookieJar 来管理 cookie
下面以上节出错的的爬虫代码为例,来说明CookieJar 的用法
from http import cookiejar
from urllib import request, parseurl = "https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput="
data_url = "https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36","Referer": url
}
data = {"first": "true","pn": str(1),"kd": "python"
}# 创建cookiejar实例对象
cookie_jar = cookiejar.CookieJar()# 根据创建的cookie生成cookie的管理器
handler = request.HTTPCookieProcessor(cookie_jar)# 创建http请求管理器
http_handle = request.HTTPHandler()# 创建https管理器
https_handle = request.HTTPSHandler()# 有了opener,就可以替代urlopen来获取请求了
opener = request.build_opener(handler, http_handle, https_handle)req = request.Request(url, headers=headers)# 正常是用request.urlopen(),这里用opener.open()发起请求,获取cookies
opener.open(req)rep = request.Request(data_url, headers=headers, data=parse.urlencode(data).encode("utf-8"))res = opener.open(rep)
st = res.read().decode("utf-8")
f = open("index.html", "w")
count = f.write(st)f.close()
print(st)
print(count)
执行结果如下所示
通过使用cookies管理,就能真正的模仿用户登录了,
python爬虫之http.CookieJar库相关推荐
- python websocket库有什么_常用Python爬虫与Web开发库有哪些?
Python爬虫和Web开发均是与网页相关的知识技能,无论是自己搭建的网站还是爬虫爬去别人的网站,都离不开相应的Python库,以下是常用的Python爬虫与Web开发库. **1.爬虫库** bea ...
- python爬虫之Beautiful Soup库,基本使用以及提取页面信息
一.Beautiful Soup简介 爬虫正则表达式参考:Python 爬虫正则表达式和re库 在爬虫过程中,可以利用正则表达式去提取信息,但是有些人觉得比较麻烦.因为花大量时间分析正则表达式.这时候 ...
- python 爬虫调用 js 的库之 execjs
python 爬虫调用 js 的库之 execjs 针对现在大部分的网站都是使用 js 加密,js 加载的,并不能直接抓取出来,这时候就不得不使用一些三方类库来执行 js 语句 1. 安装 pip i ...
- 从零开始写Python爬虫---1.1 requests库的安装与使用
什么是爬虫? 爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的.所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来.这个时候就要用到req ...
- Python爬虫入门之Urllib库的基本使用
那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧. 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解 ...
- PYTHON 爬虫笔记七:Selenium库基础用法
知识点一:Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium ...
- 【Python爬虫】Beautiful Soup库入门
BeautifulSoup库的安装 安装 pip install beautifulsoup4 测试是否安装成功 Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2 ...
- Python爬虫--- 1.2 BS4库的安装与使用
原文链接https://www.fkomm.cn/article/2018/7/20/17.html Beautiful Soup 库一般被称为bs4库,支持Python3,是我们写爬虫非常好的第三方 ...
- python爬虫方向的第三方库_requests 第三方库
requests 第三方库 官方定义:Requests is the only Non-GMO HTTP library for Python, safe for human consumption. ...
最新文章
- php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...
- spring中的bean属性相关访问、编辑、转换
- 008_TreeSet使用Comparator排序
- LCD显示原理和驱动方式介绍
- Andriod监听支付宝收款实现个人支付宝支付接口!附安卓App
- 深入理解Spark 2.1 Core (十一):Shuffle Reduce 端的原理与源码分析
- Linux系统内存管理实验报告,Linux 内存管理 综合实验报告.pdf
- LaTex字体、符号汇总
- FoneDog Toolkit for Android如何从Android恢复丢失的文件
- 进入大厂的面试经验详细总结(P7 拿 offer)
- Activity/Fragment最强生命周期总结
- makefile中的notdir,wildcard和patsubst
- 将银行大写数字转换为纯数字
- Latex特殊符号大全(高清)
- quartz 整合 postgresql 附带例子
- 计算机主机分为什么不同,什么是服务器(服务器和计算机主机之间的区别)
- 淘宝天猫商品sku详细信息API接口
- 华为“More Bits, Less Watts”新践行
- 如何查美国公司的年报
- WDM波分复用中什么是C波段、L波段?
热门文章
- python进行B站av号和bv号的转换
- 如何提高大数据业务系统的性能
- python和Pycharm的安装、使用踩坑-用于提取网页的文字
- ChatGPT风口下的中外“狂飙”,一文看懂微软、谷歌、百度、腾讯、华为、字节跳动们在做什么?
- [01背包] 宠物小精灵之收服(01背包+二维费用背包+思维)
- 20个新鲜的和鼓舞人心的电子商务网站
- linux常用复制粘贴命令行,技术|使用 xclip 在 Linux 命令行中复制粘贴
- 学习3D建模可能遇到的问题?
- python items 与 iteritems
- html创建关联程序,Win10系统如何在默认程序控制面板中创建关联