在代理后面使用Quandl for Python时的urllib2.URLError

时间:2014-10-03 18:51:05

标签: python pandas proxy quantitative-finance quandl

我发布这个是因为我试图自己寻找答案,但我无法找到解决方案。我最终能够找到一种方法来使这个工作&我希望将来可以帮助其他人。

情景:

在Windows XP中,我正在使用Python和Pandas& Quandl使用以下代码行获取美国股票证券的数据:

bars = Quandl.get("GOOG/NYSE_SPY", collapse="daily")

不幸的是,我收到了以下错误:

urllib2.URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>

@ user3150079:请 Ctrl + X / Ctrl + V 您的解决方案为 [答案] 。这样的MOV完全在StackOverflow

解决方案:

我认识到这是在没有正确定位我的网络代理服务器的情况下尝试联系服务器的问题。由于我无法为HTTP_PROXY设置系统变量,因此我添加了以下更正问题的行:

import os
os.environ['HTTP_PROXY']="10.11.123.456:8080"

谢谢 - 我很想知道此解决方案或其他建议的任何改进。

2 个答案:

答案 0 :(得分:0)

如果您不能或不会设置系统环境变量,则可以设置用户环境变量HTTP_PROXY

set HTTP_PROXY "10.11.123.456:8080"
python yourscript.py

并永久设置它(使用来自Windows XP Service Pack 2 Support Tools的setx):

setx HTTP_PROXY "10.11.123.456:8080"
python yourscript.py

获取此环境变量集的其他方法包括:注册表项,放置os.environ["HTTP_PROXY"] = ..." in sitecustomize.py`。

答案 1 :(得分:0)

使用请求进行更多控制而不使用Quandl包:

import requests

    def main():
        proxies = {'http': 'http://proxy.yourdomain.com:port',
                   'https': 'http://proxy.yourdomain.com:port',}

        url =  'https://www.quandl.com/api/v3/datasets/GOOG/NYSE_SPY.json?collapse=daily'

        response = requests.get(url, proxies=proxies)

        status = response.status_code
        html_text = response.text
        repo_data = response.json()

        print(repo_data)

        print(status)

        print('HTML TEXT')
        print('=========')
        print(html_text)

if __name__ == '__main__':
    main()