2012-12-09 14 views
11

Chciałbym przeanalizować stronę internetową i wydobyć z niej znaczące treści. Przez znaczącą, mam na myśli treść (tylko tekst), którą użytkownik chce zobaczyć na danej stronie (dane wyłączając reklamy, banery, komentarze itp.) Chcę zapewnić, że kiedy użytkownik zapisuje stronę, dane, które chciał odczyt jest zapisany i nic więcej.Jak wydobywać sensowne i przydatne treści ze stron internetowych?

Krótko mówiąc, potrzebuję zbudować aplikację, która działa podobnie jak czytelność. (http://www.readability.com) Muszę wziąć tę przydatną zawartość strony internetowej i zapisać ją w oddzielnym pliku. Naprawdę nie wiem, jak sobie z tym poradzić.

Nie chcę używać interfejsów API, które wymagają połączenia z Internetem i pobierania danych z ich serwerów, ponieważ proces pobierania danych musi być przeprowadzany w trybie offline.

Istnieją dwie metody, które mogłyby myślę:

  1. pomocą algorytmu opartego uczenie maszynowe się (tak: http://ai-depot.com/articles/the-easy-way-to-extract-useful-text-from-arbitrary-html/)

  2. Opracowanie skrobak internetowej, która mogłaby w sposób zadowalający usunąć wszystkie bałagan z sieci strony.

Czy istnieje narzędzie, które to robi? Natknąłem się na bibliotekę bojlerów (http://code.google.com/p/boilerpipe/), ale jej nie używałem. Czy ktoś go użył? Czy daje satysfakcjonujące wyniki? Czy są jakieś inne narzędzia, szczególnie napisane w PHP lub Pythonie, które wykonują tego rodzaju skrobanie w Internecie?

Jeśli potrzebuję zbudować własne narzędzie, aby to zrobić, co zasugerowałbyś, aby to zrobić?

Odkąd muszę posprzątać bałagan lub niepełne HTML zanim zacznę jej analizowania, chciałbym użyć narzędzia takie jak schludne (http://www.w3.org/People/Raggett/tidy/) lub piękny Soup (http://www.crummy.com/software/BeautifulSoup/bs4/doc/), aby wykonać zadanie.

Ale nie wiem, jak wyodrębnić zawartość po tym kroku.

PS. Jestem amatorem i chciałbym, gdyby były gotowe do użycia narzędzi open source, które to robią i mogą być łatwo zintegrowane z moim kodem, który napiszę w PHP lub Pythonie. Jeśli mam napisać własny kod, chciałbym otrzymać poradnictwo, które wcześniej wykonało taką pracę! :) Wielkie dzięki!

Odpowiedz

9

czy wpisałeś "czytelność pythona" w google? istnieje bardzo popularna biblioteka (200+ obserwujących) na githubie.

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

Dodatkowo, istnieje php jeden jeśli było wpisać „php czytelność” choć ma 100 zwolenników nie miała ona działalność na prawie dwa lata https://github.com/feelinglucky/php-readability

i wreszcie najbardziej popularnych (350+ gitHub folowers) jest portem czytelność rubin https://github.com/iterationlabs/ruby-readability

przynajmniej widać, jak te 3 różne projekty zrealizować analizowania „istotne części” danej strony internetowej.

+0

Wielkie dzięki za odpowiedź. Jak już powiedziałem, jestem amatorem i naprawdę nie wiem, czy to zadziała lokalnie na moim serwerze, bez dostępu do Internetu. Chcę dać dokument HTML (zapisany na dysku), a następnie będzie mógł dać mi "czysty" plik z powrotem? Zasadniczo czy jest to API do usługi czytelności (wymagającej dostępu do serwerów czytelności), czy jest to samowystarczalny kod? Dzięki! :) – user1271286

+0

@ user1271286 to biblioteki, które nie wymagają żądań internetowych. możesz przekazać je html jak z czytaniem Pythona 'readable_article = Dokument (html) .summary() readable_title = Dokument (html) .short_title()' 'html' tutaj to tylko ciąg html – dm03514

+0

Bardzo dziękuję za pomoc ! :) Będzie nad tym pracować, a ja opublikuję tutaj, jak dobrze zadziałało! – user1271286

2

Możesz użyć htql.

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

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

Dzięki! Wygląda na dość prosty w użyciu! :) Wypróbuje to! – user1271286

Powiązane problemy