【问题标题】:python urlopen returns errorpython urlopen返回错误
【发布时间】: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 ... 如果我无法执行他/她所做的相同步骤,我将无法执行他的代码并帮助他

标签: python urlopen


【解决方案1】:

这对我有用:

import requests
url = "https://datausa.io/profile/geo/jacksonville-fl/#intro"
req = requests.request("GET",url)

【讨论】:

  • 如果您使用我的建议,请接受我的回答。
猜你喜欢
  • 2015-02-05
  • 2021-10-16
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 2013-10-30
相关资源
最近更新 更多