我试图通过抓取谷歌财务页面来获取股票价格,我在 python 中这样做,使用 urllib 包,然后使用正则表达式来获取价格数据。
当我让我的 python 脚本运行时,它最初会工作一段时间(几分钟),然后开始抛出异常 [HTTP 错误 503:服务不可用]
我猜这是因为在 Web 服务器端它检测到频繁的页面更新作为机器人并在一段时间后抛出这个异常..
有没有办法解决这个问题,即删除一些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