page raspagem para obter preços do google finance
Estou tentando obter preços das ações raspando as páginas de finanças do google, estou fazendo isso em python, usando o pacote urllib e depois usando o regex para obter dados de preço
Quando deixo meu script python em execução, ele funciona inicialmente por algum tempo (alguns minutos) e começa a gerar a exceção [Erro HTTP 503: Serviço Indisponível]
Acho que isso está acontecendo porque, no lado do servidor da web, ele detecta atualizações frequentes da página como um robô e lança essa exceção depois de um tempo ..
existe uma maneira de contornar isso, ou seja, excluir um cookie ou criar um cookie et
ou ainda melhor se o google der alguma API, eu quero fazer isso em python porque o aplicativo completo em python, mas se não houver nada disponível em python para fazer isso, posso considerar alternativas. Este é o meu método python que eu uso em loop para obter dados (com alguns segundos de sono eu chamo esse método em loop)
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