Python 的 Requests 和 Httpx 在爬取应用中的一个区别

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)`
posted @ 2022-08-15 17:04  鸟市闲人  阅读(413)  评论(0编辑  收藏  举报