2009-06-17 25 views
5

Google est incomplète - la plupart des chiffres sur une page, tels que:Obtenir des données financières de Google Finance qui est en dehors du cadre de l'API des finances de l'API

http://www.google.com/finance?fstype=ii&q=NYSE:GE

ne sont pas disponibles via l'API.

J'ai besoin de ces données pour classer les sociétés sur les marchés boursiers canadiens selon la formule de Greenblatt, disponible via google search pour "greenblatt index scans".

Ma question: quel est le moyen le plus intelligent/propre/efficace d'accéder et de traiter les données sur ces pages? L'approche fastidieuse est-elle vraiment nécessaire dans ce cas, et si oui, quelle est la meilleure façon de s'y prendre? J'apprends actuellement Python pour des projets liés à celui-ci.

Répondre

4

Vous pouvez essayer de demander à Google de fournir les API manquantes. Sinon, vous êtes coincé avec screen scraping, ce qui n'est jamais amusant, sujettes à rupture sans préavis, et probablement en violation des conditions d'utilisation de Google. Mais, si vous voulez toujours écrire un grattoir d'écran, il est difficile de battre une combinaison de mechanize et BeautifulSoup. BeautifulSoup est un analyseur HTML et mechanize est un navigateur web basé sur Python qui vous permettra de vous connecter, de stocker des cookies et de naviguer généralement comme n'importe quel autre navigateur web.

0

Grattage pages web est toujours chiant, mais je recommande de les convertir en XML (via bien rangé ou un autre HTML -> Programme XML). Puis en utilisant XPath pour marcher les nœuds qui vous intéressent

3

BeautifulSoup serait être la méthode préférée de l'analyse HTML avec Python

Avez-vous regardé des options en dehors de Google (par exemple Yahoo Finance API)?

+0

Merci, je vais regarder dans BeautifulSoup. Vous avez raison de dire que l'API de Yahoo Finance est plus complète - malheureusement, Yahoo n'a pas les données nécessaires en ce qui concerne les actions canadiennes. – Marco

Questions connexes