【问题标题】:Error occured when getting the data file through URL using python使用python通过URL获取数据文件时出错
【发布时间】:2021-04-23 09:55:58
【问题描述】:

我尝试从 URL 加载数据

url = 'http://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'
chipo = pd.read_csv(url, sep = '\t')

还有一个错误

URLError: <urlopen error [Errno 11004] getaddrinfo failed>

我已经检查了这个answer,但这没有帮助。

我也尝试过使用requests获取数据,错误又出现了

ConnectionError: HTTPConnectionPool(host='raw.githubusercontent.com', port=80): Max retries exceeded with url: /justmarkham/DAT8/master/data/chipotle.tsv (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000029B29E43748>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed'))

DNS 似乎有问题,所以我编辑了 hosts 文件,但它也无济于事。我该如何解决这个问题?

非常感谢。

【问题讨论】:

  • 这个问题不应该是可重现的,哈哈。事实证明,DNS 有问题。还是谢谢。

标签: python pandas dns python-requests urllib


【解决方案1】:

案件已解决。原来是 DNS 的问题,我需要代理才能访问资源。这可以解释为什么这个问题无法重现。

import socket
import socks
socks.set_default_proxy(socks.SOCKS5, '127.0.0.1', 10808)
socket.socket = socks.socksocket

url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'
chipo = pd.read_csv(url, sep = '\t')

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多