我正在使用 Python requests查询MediaWiki API的get方法,但需要很长时间才能收到响应。相同的请求通过 Web 浏览器非常快速地收到响应。我在请求 google.com 时遇到了同样的问题。以下是我在 Windows 10 上的 Python 3.5 中尝试的示例代码:
response = requests.get("https://www.google.com")
response = requests.get("https://en.wikipedia.org/wiki/Main_Page")
response = requests.get("http://en.wikipedia.org/w/api.php?", params={'action':'query', 'format':'json', 'titles':'Labor_mobility'})
但是,我在检索其他网站时不会遇到这个问题,例如:
response = requests.get("http://www.stackoverflow.com")
response = requests.get("https://www.python.org/")
最佳答案
这听起来像是与服务器的底层连接存在问题,因为对其他 URL 的请求有效。想到这些:
尝试添加无害的标题,例如:
requests.get("https://www.example.com", headers={"User-Agent": "Mozilla/5.0 (X11; CrOS x86_64 12871.102.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.141 Safari/537.36"})
等待几分钟,然后重试。如果这解决了您的问题,您可以通过添加
time.sleep()
来减慢您的代码速度。以防止再次被限速。通过执行
curl --ipv6 -v https://www.example.com
进行验证.然后,比较 curl --ipv4 -v https://www.example.com
.如果后者明显更快,则您的 IPv6 连接可能有问题。查询 here对于可能的解决方案。没有解决你的问题?
如果这不能解决您的问题,我已经收集了一些其他可能的解决方案 here .
关于Python请求GET需要很长时间才能响应一些请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38215148/