4 Stimmen

Page Scraping, um Preise von Google Finance zu erhalten

Ich versuche, Aktienkurse durch Scraping Google Finance Seiten zu erhalten, ich tue dies in Python, mit urllib-Paket und dann mit Regex, um Preisdaten zu erhalten.

Wenn ich mein Python-Skript laufen lasse, funktioniert es zunächst für einige Zeit (wenige Minuten) und beginnt dann, Ausnahme [HTTP-Fehler 503: Service Unavailable] zu werfen.

Ich vermute, dies geschieht, weil auf Webserver-Seite erkennt es häufige Seite Updates als ein Roboter und wirft diese Ausnahme nach einer Weile.

Gibt es eine Möglichkeit, dies zu umgehen, d.h. ein Cookie zu löschen oder ein Cookie zu erstellen usw.?

oder noch besser, wenn Google gibt einige api, ich möchte dies in Python zu tun, weil die komplette app in Python, aber wenn es nichts in Python zur Verfügung, dies zu tun ist, kann ich Alternativen in Betracht ziehen. Dies ist meine Python-Methode, die ich in der Schleife verwende, um Daten zu erhalten (mit einigen Sekunden Schlaf rufe ich diese Methode in der Schleife auf)

 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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X