Come raschiare pagine Web in diversi formati / layout?
-
06-07-2019 - |
Domanda
Devo raccogliere i report del modulo 10-K (ovvero i report annuali delle società statunitensi) da sito web SEC per un progetto.
Il problema è che le aziende non usano lo stesso formato esatto per archiviare questi dati. Quindi, ad esempio, i dati immobiliari di 2 diverse società potrebbero essere visualizzati come di seguito
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.
Allo stesso modo, il layout dei dati potrebbe essere completamente diverso per le altre società.
Vorrei sapere se ci sono modi migliori per raschiare questo tipo di dati eterogenei oltre a scrivere ricerche regex complesse.
Ho la libertà di usare Java, Perl, Python o Groovy per questo lavoro.
Soluzione
Sarei propenso a conservare una libreria di metafile che descriva il layout di ogni pagina da cui desideri acquisire dati e utilizzarli quando tenti di ottenere i dati.
In questo modo non hai bisogno di comandi reg-ex complessi e se un sito cambia il suo design devi semplicemente cambiare uno dei tuoi file.
Il modo in cui decidi di creare il meta file dipende da te, ma cose come i nomi delle classi o i tag pertinenti potrebbero essere un buon inizio.
quindi descrivi come estrarre i dati da quel tag.
Non sono sicuro che esista uno strumento che fa tutto questo.
L'altro modo migliore potrebbe essere quello di contattare i proprietari di questi siti e vedere se forniscono un feed sotto forma di un servizio Web o qualcosa che è possibile utilizzare per ottenere i dati. Salva un sacco di angoscia che dovrei pensare.