为什么我无法阅读 python 中的 url?

Why can't I read a url in python?

我想阅读 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]>

有什么想法吗?

在这种特殊情况下,您可以通过提供适当的 headers 来克服 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': '*'}

link 是 broken/invalid。根据网站,以下 link http://data.europa.eu/esco/isco/C0110 不是 URL 而是 URI。

他们似乎对数据进行了 API 设置。

你可以;

  1. 检查 API 并配置它
    https://ec.europa.eu/esco/portal/api

  1. 使用类似 BeautifulSoup4 的网络模块 抓取 您想要内容的页面。