page grattant pour obtenir des prix à partir de google finance

Je suis en train d'essayer d'obtenir le prix des actions en grattant google finance pages, je le fais en python, en utilisant urllib pack, puis en utilisant les regex pour obtenir des données sur les prix.

Quand je laisse mon script python en cours d'exécution, il travaille d'abord pendant un certain temps (quelques minutes), puis commence à jeter exception [Erreur HTTP 503: Service non disponible]

Je suppose que cela se passe parce que sur le web côté serveur, il détecte les fréquentes mises à jour de page comme un robot, et le jette de cette exception, après un certain temps..

est-il un moyen de contourner cela, c'est à dire la suppression de certains cookie ou la création de certains cookie etc..

ou encore mieux si google donne quelques api, je veux le faire en python car la complète application en python, mais si il n'y a rien de disponible en python pour ce faire, je peux envisager des solutions de rechange. C'est mon python méthode que j'utilise dans la boucle pour obtenir des données ( avec quelques secondes de sommeil, j'ai appeler cette méthode dans la boucle)

 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
Lire 5.3 à partir de CGU
D'accord...et l'API est une interface qui vous est fournie par Google"
Est-ce légal? Je veux faire du web démolition sur google et yahoo?
Je préfère utiliser ceci: fixer.io

OriginalL'auteur user424060 | 2011-04-12