2009-10-28 4 views
1

J'ai besoin de gratter les rapports de formulaire 10-K (c'est-à-dire les rapports annuels des sociétés américaines) de SEC website pour un projet. Le problème, c'est que les entreprises n'utilisent pas exactement le même format pour archiver ces données. Ainsi, par ex., Les données de l'immobilier pour 2 sociétés différentes peuvent être affichées comme ci-dessousComment graver des pages Web dans différents formats/dispositions?

1st company 

Property name State City  Ownership Year Occupancy Total Area 
------------- ----- ------ --------- ---- --------- ---------- 
ABC Mall   TX Dallas Fee   2007 97%  1,347,377 
XYZ Plaza  CA Ontario Fee   2008 85%  2,252,117 



2nd company 

Property   % Ownership %Occupany Rent Square Feet 
--------------- ----------- --------- ----- ----------- 
New York City 
    ABC Plaza  100.0%  89.0%  38.07 2,249,000 
    123 Stores  100.0%  50.0%  18.00 1,547,000 
Washington DC Office 
    12th street  ....... 
    2001, J Drive ....... 

etc. 

De même, la mise en page des données pourrait être tout à fait différente pour d'autres entreprises.

Je voudrais savoir s'il y a de meilleures façons de gratter ce type de données autres que l'écriture hétérog'enes recherches regex complexes.

J'ai la liberté d'utiliser Java, Perl, Python ou Groovy pour ce travail.

Répondre

3

Je serais enclin à garder une bibliothèque de fichiers méta qui décrivent la mise en page pour chaque page que vous souhaitez gratter les données de l'utiliser et en essayant d'obtenir les données.

De cette façon, vous n'avez pas besoin complexes commandes reg-ex et si un site change de design que vous changez simplement un seul de vos fichiers.

Comment vous décidez de créer le fichier méta est à vous, mais des choses comme les noms de classe pertinents ou balises pourraient être un bon début.

puis de décrire comment extraire les données de cette étiquette.

Vous ne savez pas s'il existe un outil qui fait tout cela.

L'autre, plus agréable, pourrait être de contacter les propriétaires de ces sites et voir s'ils fournissent un flux sous la forme d'un WebService ou quelque chose que vous pouvez utiliser pour obtenir les données. Économise beaucoup de chagrin, je devrais penser.

+1

La façon «cool, vintage 2007» serait de demander un flux RSS. Bonne chance de trouver quelqu'un à la SEC qui comprend soit "Web Service" ou "flux RSS". –

+1

Hehe, ouais d'accord. Peut-être qu'ils pourraient envoyer un parchemin par transporteur pigeon une fois par mois – griegs

Questions connexes