Provate la libreria Beautiful Soup per Python. Ha metodi molto semplici per estrarre informazioni da un file html.
Provare a estrarre genericamente dati da pagine Web richiederebbe alle persone di scrivere le proprie pagine in un modo simile ... ma c'è un numero quasi infinito di modi per trasmettere una pagina che sembra identica, figuriamoci tutte le connessioni che si possono avere per trasmettere le stesse informazioni.
Esiste un particolare tipo di informazioni che stavi tentando di estrarre o un altro obiettivo finale?
Si potrebbe provare a estrarre qualsiasi contenuto nei marcatori 'div' e 'p' e confrontare le dimensioni relative di tutte le informazioni nella pagina. Il problema quindi è che le persone probabilmente raggruppano le informazioni in raccolte di "div" e "p" (o almeno lo fanno se scrivono html ben formato!).
Forse se hai formato un albero di come le informazioni sono correlate (i nodi sarebbero la 'p' o 'div o qualsiasi altra cosa e ogni nodo conterrà il testo associato) potresti fare una sorta di analisi per identificare il più piccolo' p 'o' div 'che racchiude quella che sembra essere la maggior parte delle informazioni ..?
[EDIT] Forse se riesci a metterlo nella struttura ad albero, ho suggerito, potresti quindi utilizzare un sistema di punti simile allo spam assassino. Definire alcune regole che tentano di classificare le informazioni. Alcuni esempi:
+1 points for every 100 words
+1 points for every child element that has > 100 words
-1 points if the section name contains the word 'nav'
-2 points if the section name contains the word 'advert'
Se avete un sacco di regole a basso punteggio che si sommano quando si trova più relevent cercando sezioni, penso che potrebbe evolversi in una tecnica abbastanza potente e robusto.
[EDIT2] Osservando la leggibilità, sembra che stia facendo praticamente esattamente quello che ho appena suggerito! Forse potrebbe essere migliorato per cercare di capire meglio i tavoli?
fonte
2009-04-28 08:28:45
Questo JS script per il bookmarklet leggibilità sembra funzionare sorprendentemente bene: http://lab.arc90.com/experiments/readability/js/readability.js – jamtoday
Cosa si intende per "significativo"? Quale regola può utilizzare un programma per distinguere "significativo" dalle cose che dovrebbero essere escluse? Questa regola funziona universalmente? –
Significativo, intendo semplicemente il tipo di contenuto che la leggibilità estrae. Ovviamente questo non funzionerebbe bene su alcuni tipi di siti, ma principalmente guardo blog e siti di notizie in cui vorresti estrarre i più grandi blocchi di testo. – jamtoday