小编ASj*_*ASj的帖子

Python request.get 无法获得我可以在浏览器上打开的 url 的答案

我正在学习如何使用 python 请求(Python 3),我正在尝试制作一个简单的 requests.get 从几个网站获取 HTML 代码。尽管它适用于大多数人,但我遇到了麻烦。

当我打电话时:http : //es.rs-online.com/一切正常:

In [1]: import requests
   ...:html = requests.get("http://es.rs-online.com/")
In [2]:html
Out[2]: <Response [200]>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用http://es.farnell.com/尝试它时,python 无法解析地址并一直在处理它。如果我设置了超时,无论多长时间,requests.get()都将始终被超时中断,而不会被其他任何事情中断。我也尝试添加标题,但它没有解决问题。此外,我认为该错误与我使用的代理无关,因为我可以在浏览器中打开该网站。目前,我的代码如下所示:

import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'}
html = requests.get("http://es.farnell.com/",headers=headers, timeout=5, allow_redirects = True )
Run Code Online (Sandbox Code Playgroud)

5 秒后,我收到预期的超时通知。

ReadTimeout: HTTPConnectionPool(host='es.farnell.com', port=80): Read timed out. (read timeout=5)
Run Code Online (Sandbox Code Playgroud)

有谁知道可能是什么问题?

python python-requests

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×1

python-requests ×1