Domanda

Ho una pagina web caricata nel browser (vale a dire il suo posizionamento DOM ed elementi sono entrambi accessibili a me) e voglio trovare l'elemento di blocco (o di una lista ordinata di questi elementi), che probabilmente contiene la maggior parte del contenuto (come in un blocco continuo di testo). L'obiettivo è quello di escludere le cose come menu, intestazioni, piè di pagina e così via.

È stato utile?

Soluzione

Altri suggerimenti

In primo luogo, se avete bisogno di analizzare una pagina web, vorrei utilizzare HtmlAgilityPack per trasformarlo in un XML. Esso accelererà tutto e vi permetterà, utilizzando un semplice XPath per andare direttamente al corpo.

Dopo di che, si deve eseguire su tutti i div (È possibile ottenere tutti gli elementi DIV in una lista dalla confezione l'agilità), e ottenere quello che vuoi.

C'è una semplice tecnica per fare questo, sulla base di analizzare come HTML "rumorosa" è, vale a dire, quello che è il rapporto tra markup al testo visualizzato attraverso una pagina HTML. Il modo più semplice per estrarre testo utile da arbitrario HTML descrive questo tex, dando un po 'di codice Python per illustrare.

Cf. anche il HTML :: ContentExtractor Perl modulo, che implementa questa idea. Avrebbe senso per pulire il codice HTML prima, se si voleva utilizzare questo, utilizzando BeautifulSoup.

mi sento di raccomandare la tesi di Vit Baisa su Web Content pulizia , credo che abbia un po 'di codice di troppo, ma non riesco a trovare un link per esso. C'è anche un href="http://lingpipe-blog.com/2010/01/06/blegging-for-help-web-scraping-for-content/" rel="nofollow noreferrer"> discussione dello stesso problema sul linguaggio naturale blog elaborazione LingPipe.

scroll top