Python 的 Requests 和 Httpx 在爬取应用中的一个区别
2024-09-08 18:56:23
HTTPX是功能齐全的Python3的HTTP客户端,支持同步和异步API,支持HTTP/1.1 和 HTTP/2。
一般情况下,在爬取网页内容的时候,httpx 与 requests 的基本使用方法几乎是一模一样的。
比如:
import httpx
r = httpx.get('https://xxx.org/get')
print(r) # <Response [200 OK]>
但是在遇到有重定向的访问时,httpx.get() 和 requests.get() 访问结果却不相同。主要原因是两个库的参数设置有差别。
httpx,get() 有一个参数 follow_redirects= 默认值是 False;而 requests.get() 中的类似参数 allow_redirects= 的默认值是 True.
所以,对 requests 可以正常爬取,而 httpx 却返回 status_code=301 的任务,可以使用指定参数的办法来解决。
import httpx
r = httpx.get('https://xxx.org/get',follow_redirects=True)`
最新文章
- 数据结构图文解析之:AVL树详解及C++模板实现
- 大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
- AloneJs.msgbox() —— 弹出消息框
- hdu1047 Integer Inquiry
- 编译ffmpeg(iOS)
- 推荐第三方Oracle客户端查询工具
- 了解JVM运行时的内存分配
- 华硕ASUSPRO P5440UA笔记本电脑安装驱动
- Apache无法正常启动(配置多个监听端口)
- Oracle使用expdp/impdp导出导入数据
- 尚硅谷springboot学习1-简介
- 记一次autofac+dapper+mvc的框架搭建实践
- 【delphi】关键字详解
- 第212天:15种CSS居中的方式,最全了
- 移动 H5(PC Web)前端性能优化指南
- access数据库频繁读取操作会出现 System.Data.OleDb.OleDbException 的异常解决
- BeanShell Processor_使用Java处理脚本
- C++里创建 Trie字典树(中文词典)(一)(插入、遍历)
- HttpRunnerManager 接口自动化测试平台 搭建实践
- oracle 删除用户命令和部分表空间操作
热门文章
- 配置代码片段问题 Invalid characters in string. Control characters must be escaped.
- c# reflect里面的getValue()参数
- uml类间关系总结
- 监听 view 初始化时
- python multiprocessing多进程 cannot pickle &#39;_io.TextIOWrapper&#39; object
- python基础 补漏
- P标签内容过长以省略号代替
- 百度云+Zotero进行知识管理的方法
- 看K线学炒股(8.10)
- JAVA课程设计(附源码)