问题描述
问题1 发出API请求之前,如何使用新的IP地址?
问题2 ,除了打印获取的IP的结果之外,是否有一种很好的方法来测试此IP内容是否确实有效
proxies_lines = open('proxies').read().splitlines()
proxy=random.choice(proxies_lines)
我尝试了两种存储代理的方法
https://000.00.000.00:0000
https://000.00.000.00:0000
https://000.00.000.00:0000
Also saw some posts of people storing them this way. Not sure which way is best?
000.00.000.00:0000
000.00.000.00:0000
000.00.000.00:0000
我想用这段代码做什么
除了添加IP地址的第3个步骤外,我已完成所有步骤。
这就是我构造for循环的方式
for item in stock_list:
stock_ticker=item
keys=random.choice(lines)
proxy=random.choice(proxies_lines)
time.sleep(1)
# To access the API
base_url = 'https://www.alphavantage.co/query?'
params = {'proxies' : proxy,'function': 'OVERVIEW','symbol': stock_ticker,'apikey': keys}
response_data_overview = requests.get(base_url,params=params)
data_overview_MarketCapitalization = response_data_overview.json()['MarketCapitalization']
# Print Results
print("The Market Cap for {} is = {}".format(stock_ticker,data_overview_MarketCapitalization))
print("Proxie Used {}".format(proxy))
这是正确的设置方式吗?当我运行代码时,它会在停止之前打印出7只股票中5只的市值。如果IP轮换有效,那么它将打印出7/7的结果,因为我每分钟只能对一个IP地址/密钥发出5个请求。
侧跑
如果这是一个超级nooby问题,请提前道歉。学习编码,并于上个月决定将Python作为第一语言。在团队树屋上学习Python课程时,尝试做一个附带项目,该项目使用预先建立的完善的估值公式来构建开源股票筛选器。超级早期大声笑,但进步就是进步https://github.com/Jakub-MFP/FIRE_Dashboard
我是未来训练哈哈的Pythonista
解决方法
-
好像您要将代理放入
params
中一样,requests.get()
是发布到服务器的数据;相反,您需要将其传递给params = {'function': 'OVERVIEW','symbol': stock_ticker,'apikey': keys} response_data_overview = requests.get(base_url,params=params,proxies={'https': proxy})
,以便它知道如何发出请求。ggfortify::autoplot.prcomp
-
规避发布的API限制最好是粗鲁的,最坏的情况是重罪。您应该以较低的速率(即每分钟少于5个)提出请求,或者以更高的限制获得高级计划(或其他经过协商的,可能是付费的访问权限)。
如果这是一个学习项目,那么以较低的速度提出请求可能是最好的方法。