当前位置: 首页 > news >正文

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

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

方法1:

from urllib.request import Request,build_opener
from fake_useragent import UserAgenturl ='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 HTTPHandlerurl ='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对象。 

http://www.lryc.cn/news/326454.html

相关文章:

  • Milvus 向量数据库:如何基于docker-compose在本地快速搭建测试环境
  • python --dejavu音频指纹识别
  • 完全二叉树的层序遍历[天梯赛]
  • C语言看完我这篇编译与链接就够啦!!!
  • 【React】react 使用 lazy 懒加载模式的组件写法,外面需要套一层 Loading 的提示加载组件
  • IDEA的Scala环境搭建
  • LeetCode第四天(448. 找到所有数组中消失的数字)
  • 【vivado】在原有工程上新建工程
  • (原型与原型链)前端八股文修炼Day5
  • 逐步学习Go-并发通道chan(channel)
  • 鸿蒙HarmonyOS应用开发之Node-API开发规范
  • 单例模式
  • Android OpenMAX - 开篇
  • ubuntu开启ssh服务
  • 测试缺陷定位的基本方法
  • 【数字图像处理matlab系列】数组索引
  • 【2024系统架构设计】案例分析- 3 数据库
  • vue基础——java程序员版(总集)
  • Rancher(v2.6.3)——Rancher配置Harbor镜像仓库
  • C++类和对象、面向对象编程 (OOP)
  • Introduction to Data Mining 数据挖掘
  • 常用的 Git 命令
  • jackson:JSON字符串(String)类型的成员序列化和反序列化
  • 使用docker的好处???(docker的优势)
  • Google AI 肺癌筛查的计算机辅助诊断
  • 【字符串算法题记录】反转字符串中的单词(leetcode),右旋字符串(kama)——双指针以及反转的奇思妙用
  • 基于springboot+vue调用百度ai实现车牌号识别功能
  • 【NTN 卫星通信】 TN和多NTN配合的应用场景
  • 健康餐饮必备!油烟净化器超强洁净餐饮环境
  • Redis修改开源协议,6大备胎重见天日