我正在学习如何使用 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)
有谁知道可能是什么问题?