【发布时间】:2018-12-27 13:43:39
【问题描述】:
系统:Win 7 x64 上的 Anaconda Python 3.6.4 x64
我试图在代理后面使用 pandas_datareader.data,但无法修改我的 Windows PATH。
据我了解,pandas_datareader 使用 urllib.requests 连接到各自的服务提供商。默认情况下,urllib 使用一个试图检测 PATH 代理设置的开启器: https://docs.python.org/3.5/howto/urllib2.html#proxies
我可以替换开启器以强制它使用我指定的代理设置,并且据我了解,这会在全局级别修改 urllib 的行为,而不仅仅是针对给定实例.
我的假设是使用 install_opener({...}) 应该会修改 pandas_datareader 的行为。但是,我看不出有什么变化。
例子:
import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
import urllib
style.use('ggplot')
start = dt.datetime(2015, 1, 1)
end = dt.datetime.now()
# this fails, since no proxy is set
df = web.DataReader("TSLA", 'morningstar', start, end)
# install proxies to opener
proxies = {'http' : 'http://...',
'https': 'https://...'}
proxy_support = urllib.request.ProxyHandler(proxies)
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
# this also fails, why?
df = web.DataReader("TSLA", 'morningstar', start, end)
谁能指出我的错误?
【问题讨论】:
标签: python-3.x proxy urllib pandas-datareader