我试图通过抓取谷歌金融页面来获取股票价格,我在 python 中使用 urllib 包,然后使用正则表达式来获取价格数据。
当我让 python 脚本运行时,它最初会运行一段时间(几分钟),然后开始抛出异常 [HTTP 错误 503:服务不可用]
我猜这种情况正在发生,因为在网络服务器端,它作为机器人检测到频繁的页面更新,并在一段时间后抛出此异常。
有没有办法解决这个问题,即删除一些 cookie 或创建一些 cookie 等。
或者更好的是,如果谷歌提供一些API,我想在Python中执行此操作,因为Python中的完整应用程序,但如果Python中没有可用的东西可以执行此操作,我可以考虑替代方案。这是我在循环中使用的 python 方法来获取数据(在几秒钟的睡眠后,我在循环中调用此方法)
def getPriceFromGOOGLE(self, symbol):
"""
gets last traded price from google for given security
"""
toReturn = 0.0
try:
base_url = 'http://google.com/finance?q='
req = urllib2.Request(base_url + symbol)
content = urllib2.urlopen(req).read()
namestr = 'name:\"' + symbol + '\",cp:(.*),p:(.*),cid(.*)}'
m = re.search(namestr, content)
if m:
data = str(m.group(2).strip().strip('"'))
price = data.replace(',','')
toReturn = float(price)
else:
print 'ERROR ' + str(symbol) + ' --- ' + str(content)
except Exception, exc:
print 'Exc: ' + str(exc)
finally:
return toReturn
该问题很旧,但所选答案不再有效。
该 API 已被弃用。
有一个开源项目可以从 Google 金融中抓取所有公司,并将它们与当前的价格进行匹配http://scrape-google-finance.compunect.com/ http://scrape-google-finance.compunect.com/
该项目解决了大部分问题,包括缓存、IP 管理,并且工作稳定,不会被阻止。
它使用内部财务公司匹配API来抓取公司和图表API来获取价格。
但它是 php 代码,而不是 python。您仍然可以了解它如何解决任务并进行调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)