【发布时间】:2018-05-17 15:11:44
【问题描述】:
我正在尝试解析来自“https://datausa.io/profile/geo/jacksonville-fl/#intro”的一些数据,但我不确定如何从 python 访问它。我的代码是:
adress, headers = urllib.request.urlretrieve(' https://datausa.io/profile/geo/jacksonville-fl/#intro')
handle = open(adress)
它返回错误:
Traceback (most recent call last):
File "C:/Users/Jared/AppData/Local/Programs/Python/Python36-32/capstone1.py", line 16, in <module>
adress, headers = urllib.request.urlretrieve(' https://datausa.io/profile/geo/jacksonville-fl/#intro')
File "C:\Users\Jared\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 248, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "C:\Users\Jared\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "C:\Users\Jared\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, in open
response = meth(req, response)
File "C:\Users\Jared\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Users\Jared\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 570, in error
return self._call_chain(*args)
File "C:\Users\Jared\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
result = func(*args)
File "C:\Users\Jared\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
请说明问题所在或告诉我访问该页面的更好方法。另外,“ .io ”后缀是否会影响 python 处理它的方式? 谢谢。
【问题讨论】:
-
你应该使用提供的api:datausa.io/about/api并阅读使用条款:datausa.io/about/usage
-
你能写下你导入库url lib的那一行吗?
-
@FrancescoBoi urllib 是一个标准的 Python 库。也许不是为此目的最好的,但标准。
-
@PaulaThomas 我知道,我尝试执行他发布的导入库的第一行代码,我得到错误“模块”对象没有属性“请求”所以我认为他正在做类似的事情from urllib import ... 如果我无法执行他/她所做的相同步骤,我将无法执行他的代码并帮助他