HTTPX 返回 403,但请求 200。Python

问题描述 投票:0回答:1

我正在尝试解析一个网站。我正在发送一个裸http请求,只需设置一个用户代理。

令人惊讶的是使用“requests”的请求如何返回 200 响应。但使用 httpx 的相同查询会返回 403。 我尝试过使用 1.1 版本的 http 协议和 2.0 版本发出请求。没有给出任何结果。

我知道这个网站使用了一些针对机器人的保护措施。

但是为什么原始的“请求”能够完成这项工作,而不是 httpx?

我注意到 httpx 在其默认请求中添加了一个“Host”标头,而“requests”则没有。 但我不知道如何摆脱它。

30秒视频: https://i.imgur.com/tWOe0sZ.mp4

python python-requests screen-scraping httpx
1个回答
0
投票

HTTPX 证书有问题。试试这个:

import httpx, ssl, certifi
context = ssl.create_default_context()
context.load_verify_locations(certifi.where()) 
client = httpx.Client(verify=context)  
client.get('https://example.com')
© www.soinside.com 2019 - 2024. All rights reserved.