【问题标题】:Why can't I read a url in python?为什么我不能在 python 中读取 url?
【发布时间】:2021-10-11 04:41:02
【问题描述】:

我想在 python 中读取一个 url,但我用不同的方式得到错误:

import urllib
link = "http://data.europa.eu/esco/isco/C0110"
f = urllib.urlopen(link)
myfile = f.read()
print(myfile)

HTTPError: HTTP Error 406: Not Acceptable

link = "http://data.europa.eu/esco/isco/C0110"
f = requests.get(link)
print(f)

<Response [406]>

有什么想法吗?

【问题讨论】:

标签: python url request


【解决方案1】:

在这种特殊情况下,您可以通过提供如下适当的标头来克服 HTTP 406:-

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36',
    'Accept-Encoding': '*',
    'Accept': 'text/html',
    'Accept-Language': '*'}

【讨论】:

  • 我希望这个网站上的每个人都像你一样
【解决方案2】:

链接已损坏/无效。根据该站点,以下链接 http://data.europa.eu/esco/isco/C0110 不是 URL,而是 URI。

他们似乎为数据设置了 API。

你可以;

  1. 查看 API 并进行配置
    https://ec.europa.eu/esco/portal/api

  1. 使用 BeautifulSoup4 之类的模块进行网络抓取您想要从中获取内容的页面。

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 2012-11-03
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    相关资源
    最近更新 更多