Python Urllib2和Cookielib的综合使用
Python Urllib2和Cookielib的综合使用
- 手动添加请求的Headers,在opener,Request,urlopen,看看有几种方法可以使用相同的Headers处理不同的网页;
- 设定CookieJar,设定cookielib.Cookie()
- 手动添加Headers,并设定CookieJar,看看能否自动处理;
1.手动添加Headers
1.1 添加到opener上
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor)
opener.addheaders #此时会显示 "Python-urllib/2.7"
opener.addheaders[0]=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0") #把 user-agent变了
#剩下的添加自己需要的内容,比如Cookie, X-Requested-With
opener.addheaders.append(******,*******)
#最后可以使用一个opener打开多个内容
opener.open(url1)
opener.open(url2)
之后可以一直使用opener.open打开自己想要打开的网址,headers不需要每次都构建一次了。
1.2 Request对象
Request使用 urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable]) 进行创建,可以看出,url是必需的。所以构建一个Request对象只能打开一个网页。
修改Request的Headers有两种方法
- 直接修改Request.headers 这个字典
- 使用Request.add_header添加一个header
1.3 使用urllib2.urlopen(url[, data][, timeout])
最简单打开一个网页的方法就是直接使用urllib2.urlopen,参数url可以是网址也可以是Request对象。很明显,也不能更换url,甚至不能更改headers。想要添加headers,需要在Request对象里更改。
不过可以使用urllib2.install_opener(opener)修改默认的opener,在使用第一种方法设定好opener的headers后,就可以直接使用urlopen了。所有发送的请求都会自动带上opener的headers。
2 cookielib和CookieJar自动处理
分类:
Python学习笔记
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)