2009-12-18 10 views
7

Jaki jest najprostszy sposób programowego wyodrębnienia danych strukturalnych z wielu stron internetowych?Jaki jest najłatwiejszy sposób programowego wyodrębniania danych strukturalnych z wielu stron internetowych?

Obecnie używam programu Adobe AIR, który napisałem, aby śledzić linki na jednej stronie i pobrać sekcję danych z kolejnych stron. To faktycznie działa dobrze, i dla programistów myślę, że to (lub inne języki) zapewnia rozsądne podejście, które zostanie napisane indywidualnie dla każdego przypadku. Być może istnieje specyficzny język lub biblioteka, która pozwala programiście zrobić to bardzo szybko, a jeśli tak, byłbym zainteresowany wiedząc, co to jest.

Czy istnieją również narzędzia, które pozwoliłyby programistom, takim jak przedstawiciel obsługi klienta lub osoba odpowiedzialna za pozyskiwanie danych, wyodrębniać dane strukturalne ze stron internetowych bez potrzeby wykonywania kopii i wklejania?

Odpowiedz

11

Jeśli nie szukaj na Stackoverflow dla WWW::Mechanize & pQuery widać wiele przykładów wykorzystania tych Perl CPAN modułów.

Ponieważ jednak wspomniałeś o "nie programistce", to prawdopodobnie moduł CPAN może być bardziej odpowiedni? Jest on bardziej podobny, a więc być może łatwiejszy do "nie-programisty".

Oto przykład z dokumentacji do pobierania tweety z Twittera:

use URI; 
use Web::Scraper; 

my $tweets = scraper { 
    process "li.status", "tweets[]" => scraper { 
     process ".entry-content", body => 'TEXT'; 
     process ".entry-date",  when => 'TEXT'; 
     process 'a[rel="bookmark"]', link => '@href'; 
    }; 
}; 

my $res = $tweets->scrape(URI->new("http://twitter.com/miyagawa")); 

for my $tweet (@{$res->{tweets}}) { 
    print "$tweet->{body} $tweet->{when} (link: $tweet->{link})\n"; 
} 
2

znalazłem YQL być bardzo wydajne i użyteczne dla tego rodzaju rzeczy. Możesz wybrać dowolną stronę internetową z Internetu i sprawi, że będzie ona ważna, a następnie pozwoli ci użyć XPATH do sprawdzenia jej sekcji. Możesz wydrukować go jako XML lub JSON gotowy do załadowania do innego skryptu/aplikacji.

napisałem mój pierwszy eksperyment z nim tutaj:

http://www.kelvinluck.com/2009/02/data-scraping-with-yql-and-jquery/

Odtąd YQL stał się mocniejszy z dodaniem słów kluczowych EXECUTE która pozwala na pisanie własnej logiki w javascript i uruchomić ten na serwerach Yahoo !, zanim zwrócisz dane do Ciebie.

Bardziej szczegółowy zapis dotyczący YQL to here.

Można utworzyć datatable dla YQL, aby uzyskać podstawy informacji, które próbujesz złapać, a następnie osoba odpowiedzialna za pozyskiwanie danych może napisać bardzo proste zapytania (w DSL, który jest przedwcześnie angielski) przeciwko tej tabeli . Byłoby im łatwiej niż „właściwego programowania” przynajmniej ...

0

Jeśli nie przeszkadza to przejęcie komputera, a stało się konieczne wsparcie obsługi JavaScript, WatiN jest cholernie dobry narzędzie do przeglądania. Napisany w języku C# był dla mnie bardzo niezawodny w przeszłości, zapewniając niezłą przeglądarkę niezależną od przeglądarki do przechodzenia i pobierania tekstu ze stron.

2

Istnieje , który pozwala graficznie budować procesy z części (Get URL -> Process HTML Table -> Write File) i możesz umieścić kod Perla na dowolnym etapie procesu lub napisać własne części do użycie non-programmer. Wygląda na nieco opuszczoną, ale nadal działa dobrze.

0

Czy narzędzia komercyjne są realnymi odpowiedziami? Jeśli tak, sprawdź numer http://screen-scraper.com/, który jest bardzo łatwy w konfiguracji i użyciu do zeskanowania stron internetowych. Mają darmową wersję, która jest właściwie dość kompletna. I nie, nie jestem związany z firmą :)