【爬虫基础】第6讲 opener的使用

在爬虫中,opener是一个用来发送HTTP请求的对象。它可以用来模拟浏览器发送请求,包括设置请求头、处理Cookie等操作。使用opener可以实现一些高级功能,如模拟登录、处理验证码等。

方法1:

复制代码
from urllib.request import Request,build_opener
from fake_useragent import UserAgent

url ='http://httpbin.org/get'
headers ={
    'User-Agent':UserAgent().chrome
}
req = Request(url,headers=headers)
opener = build_opener()
resp = opener.open(req)
print(resp.read().decode())

执行结果:

方法2:使用控制器

复制代码
from urllib.request import Request,build_opener
from fake_useragent import UserAgent
from urllib.request import HTTPHandler

url ='http://httpbin.org/get'
headers ={
    'User-Agent':UserAgent().chrome
}
req = Request(url,headers=headers)
handler = HTTPHandler(debuglevel=1)
opener = build_opener(handler)
resp = opener.open(req)
print(resp.read().decode())

执行结果:

对比方法1和方法2,方法2明显输出内容更多更详细。

需要注意的是,opener对象默认会自动处理重定向和Cookie等操作,所以无需手动处理。如果需要手动处理重定向,可以使用urllib.request.install_opener(opener)来安装opener对象。

相关推荐
0566465 小时前
agent学习Day15——SQLAlchemy 查询过滤、分页与历史列表接口
python·学习·fastapi
程序员爱德华6 小时前
Python与C++:异同点对比
c++·python
hangyuekejiGEO7 小时前
GEO技术服务选型指南
大数据·人工智能·python
软萌萌的17 小时前
Java Spring Boot 修改yml配置&加载顺序规则
java·spring boot·python
Dxy12393102168 小时前
Linux 编译安装 Python 3.12.10(多版本共存,不破坏系统Python)
linux·运维·python
持敬chijing9 小时前
Python概述
开发语言·python
赤羽尾风11 小时前
NumPy快速入门
python·numpy
倒流时光三十年11 小时前
第三阶段 26 · highlight 高亮(返回命中片段)
后端·python·django
久久学姐13 小时前
Python+Playwright+Pytest+BDD,用FSM打造高效测试框架
python·pytest·bdd·playwright·fsm