我正在尝试解析一个网站。我正在发送一个裸http请求,只需设置一个用户代理。
令人惊讶的是使用“requests”的请求如何返回 200 响应。但使用 httpx 的相同查询会返回 403。 我尝试过使用 1.1 版本的 http 协议和 2.0 版本发出请求。没有给出任何结果。
我知道这个网站使用了一些针对机器人的保护措施。
但是为什么原始的“请求”能够完成这项工作,而不是 httpx?
我注意到 httpx 在其默认请求中添加了一个“Host”标头,而“requests”则没有。 但我不知道如何摆脱它。
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')