【发布时间】:2015-10-09 18:18:21
【问题描述】:
我正在尝试从需要使用 python 的工作项目的 Web API 下载数据集。我使用 python 3.4 和库 urllib 打开请求。这不起作用:
from urllib import request
r = request.urlopen(SOME_URL)
这给出了错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda3\lib\urllib\request.py", line 161, in urlopen
return opener.open(url, data, timeout)
File "C:\Anaconda3\lib\urllib\request.py", line 463, in open
response = self._open(req, data)
File "C:\Anaconda3\lib\urllib\request.py", line 481, in _open
'_open', req)
File "C:\Anaconda3\lib\urllib\request.py", line 441, in _call_chain
result = func(*args)
File "C:\Anaconda3\lib\urllib\request.py", line 1210, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "C:\Anaconda3\lib\urllib\request.py", line 1184, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time,
or established connection failed because connected host has failed to respond>
但是当我使用具有相同 URL 的 RStudio 时,它可以工作:
dt = read.csv(SOME_URL)
这为我提供了我想要的确切数据集。
对于我们想要保持统一技术堆栈的项目(整个过程只使用python),有没有人知道为什么URL可以在R中打开但不能在python中打开?我需要为 python 配置什么特殊设置吗?
谢谢
【问题讨论】:
-
您能否举例说明在这两种情况下如何格式化 url 字符串?
标签: python r web-scraping urlopen