2012-12-09 13 views
11

Vorrei analizzare una pagina Web e ricavarne contenuti significativi. Per significato, intendo il contenuto (solo testo) che l'utente vuole vedere in quella particolare pagina (dati esclusi annunci, banner, commenti, ecc.) Voglio garantire che quando un utente salva una pagina, i dati che desidera leggere è salvato, e nient'altro.Come estrarre contenuti significativi e utili dalle pagine Web?

In breve, ho bisogno di creare un'applicazione che funzioni come Readability. (http://www.readability.com) Ho bisogno di prendere questo contenuto utile della pagina web e memorizzarlo in un file separato. Non so davvero come farlo.

Non voglio utilizzare le API che richiedono la connessione a Internet e il recupero dei dati dai loro server poiché il processo di estrazione dei dati deve essere eseguito offline.

Ci sono due metodi che mi veniva in mente:

  1. usare un algoritmo basato apprendimento automatico (come questo: http://ai-depot.com/articles/the-easy-way-to-extract-useful-text-from-arbitrary-html/)

  2. Sviluppare un raschietto web che potrebbe soddisfacente rimuovere tutto il disordine dal web pagine.

Esiste uno strumento esistente che esegue questa operazione? Mi sono imbattuto nella libreria boilerpipe (http://code.google.com/p/boilerpipe/) ma non l'ho usata. Qualcuno l'ha usato? Fornisce risultati soddisfacenti? Esistono altri strumenti, in particolare scritti in PHP o Python, che eseguono questo tipo di scraping web?

Se ho bisogno di costruire il mio strumento per farlo, cosa vorresti suggerire di fare?

Dato che avevo bisogno di ripulire HTML disordinato o incompleti prima di iniziare la sua analisi, mi piacerebbe utilizzare uno strumento come Tidy (http://www.w3.org/People/Raggett/tidy/) oppure Beautiful Soup (http://www.crummy.com/software/BeautifulSoup/bs4/doc/) per fare il lavoro.

Ma non so come estrarre il contenuto dopo questo passaggio.

PS. Sono un dilettante e mi piacerebbe se ci fossero strumenti open source pronti a fare questo, e possano essere facilmente integrati nel mio codice che scriverò in PHP o Python. O se devo scrivere il mio codice, mi piacerebbe avere una guida che ha già fatto un lavoro simile! :) Grazie mille!

risposta

9

hai digitato "leggibilità python" in google? c'è una libreria molto popolare (oltre 200 follower) su github.

https://github.com/buriy/python-readability

Inoltre, v'è un php uno se si dovesse digitare 'php leggibilità' anche se ha 100 seguaci non ha avuto per quasi due anni https://github.com/feelinglucky/php-readability

e, infine, il più popolare (350+ github folowers) è la porta di leggibilità rubino https://github.com/iterationlabs/ruby-readability

Per lo meno si può vedere come questi 3 diversi progetti realizzano l'analisi delle "parti importanti" di una pagina web.

+0

Grazie mille per la risposta. Come ho detto, sono un dilettante e non so se funzionerà localmente sul mio server, senza accesso a Internet. Voglio dare un documento HTML (salvato su disco) e quindi sarà in grado di restituirmi un file 'pulito'? Fondamentalmente, si tratta di un'API per il servizio di leggibilità (che richiede l'accesso ai server di leggibilità) o si tratta di un codice autosufficiente? Grazie! :) – user1271286

+0

@ user1271286 queste sono librerie che non richiedono richieste web. puoi passarli in html come con la leggibilità di python 'readable_article = Document (html) .summary() readable_title = Document (html) .short_title()' 'html' qui è solo una stringa di HTML – dm03514

+0

Grazie mille per l'aiuto ! :) Ci lavorerò, e posterò qui come ha funzionato! – user1271286

2

È possibile utilizzare htql.

import htql 
page="..." 
query="&html_main_text" 

result=htql.query(page, query) 
+0

Grazie! Sembra abbastanza semplice da usare! :) Lo proverò! – user1271286

Problemi correlati