【爬虫基础】第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对象。

相关推荐
JJJJ_iii31 分钟前
【机器学习12】无监督学习:K-均值聚类与异常检测
人工智能·笔记·python·学习·机器学习·均值算法·聚类
Tony Bai1 小时前
从 Python 到 Go:我们失去了什么,又得到了什么?
开发语言·后端·python·golang
wudl55661 小时前
python字符串处理与正则表达式--之八
开发语言·python·正则表达式
程序员爱钓鱼1 小时前
Python编程实战 - 面向对象与进阶语法 - 继承与多态
后端·python·ipython
程序员爱钓鱼1 小时前
Python编程实战 - 面向对象与进阶语法 - 封装与私有属性
后端·python·ipython
nvd111 小时前
python异步编程 -- 理解协程函数和协程对象
开发语言·python
木土雨成小小测试员2 小时前
简单创建一个flask项目
后端·python·flask
java1234_小锋2 小时前
PyTorch2 Python深度学习 - transform预处理转换模块
开发语言·python·深度学习·pytorch2
景彡先生7 小时前
Python Selenium详解:从入门到实战,Web自动化的“瑞士军刀”
前端·python·selenium
珺毅同学9 小时前
YOLO输出COCO指标及YOLOv12报错
python·深度学习·yolo