【发布时间】:2015-10-26 10:34:22
【问题描述】:
我正在尝试使用 Python 从 Web 获取 JSON 文件。如果我在浏览器(Mozilla 或 Chromium)中打开 URL,我会看到 JSON。但是当我使用 Python 执行以下操作时:
response = urllib2.urlopen(url)
data = json.loads(response.read())
我收到一条错误消息,告诉我以下内容(英文翻译后):Errno 10060,a connection troughs an error,因为服务器在一段时间后没有反应,或者连接错误,或者主机没有反应。
添加
看起来有很多人遇到了所描述的问题。类似(或相同)问题也有一些答案。比如here我们可以看到如下解决方案:
import requests
r = requests.get("http://www.google.com", proxies={"http": "http://61.233.25.166:80"})
print(r.text)
这对我来说已经向前迈进了一步(我认为代理很可能是问题的原因)。但是,我仍然没有完成它,因为我不知道我的代理的 URL,我可能需要用户名和密码。我怎样才能找到它们?为什么我的浏览器没有我的浏览器?
增加了 2 个
我想我现在更进一步了。我已经使用这个网站来了解我的代理是什么:http://www.whatismyproxy.com/
然后我使用了以下代码:
proxies = {'http':'my_proxy.blabla.com/'}
r = requests.get(url, proxies = proxies)
print r
结果我得到了
<Response [404]>
看起来不太好,但至少我认为我的代理是正确的,因为当我随机更改代理的地址时,我得到另一个错误:
Cannot connect to proxy
所以,我可以连接到代理,但没有找到。
【问题讨论】:
-
您必须检查路线才能找到您的代理。在 Windows 上,您可以控制网络设置。如果您需要传递用户名和密码,您可以直接在代理字典中的 URL 中传递它们:user:password@61.233.25.166:80。
标签: python json urllib2 urllib