język xml xpath

XPath Scraper Basic/Extended (XScraper)

Wielokrotnie w artykułach czy komentarzach przejawiałem niechęć do scraperów, gdzie wykorzystuje się wyrażenia RegEx. Skłoniło mnie to do napisania swojego programu do wyciągania danych ze stron WWW, który opiera się na języku ścieżek XML (XPath). XPath Scraper (w skrócie XScraper lub XS) w wersji podstawowej (Basic) od dzisiaj dostępny jest za free dla każdego czytelnika mojego bloga. W dalszej części wpisu, znajdziecie krótką prezentację programu.

Wersję podstawową można wykorzystać do testowania wyrażeń XPath oraz ręcznego wyodrębniania danych ze stron internetowych. Prawdziwy potencjał tkwi w trybie automatycznym, który jest piekielnie skuteczny (w wersji Basic opcja nieaktywna). XScraper Extended będzie dostępny wyłącznie dla nielicznych. Na 99% będą prowadzone prace nad jego rozwojem. Dla wersji Basic można spodziewać się jedynie krytycznych aktualizacji (o ile będą konieczne).

XScraper Basic

Aplikacje, które mam na własny użytek nie muszą być ładne, ważne aby robiły to do czego zostały powołane. Szersze udostępnianie programów zawsze wiąże się z podrasowaniem wyglądu interfejsu, w związku z tym okno aplikacji od czasu prezentacji zrzutu na fanpage na Facebooku przeszło niezły lifting. Sami przyznacie, że teraz wygląda lepiej?

Przejdźmy do konkretów. Okno główne zawiera dwa pola:

  • URL – wprowadzamy adres strony/podstrony (z http).
  • XPATH – wyrażenie języka XPath.

W jaki sposób konstruować wyrażenia? Po szczegóły odsyłam do poradnika. Tak na marginesie, można sobie ułatwić pracę z XPath poprzez zainstalowanie dwóch dodatków do przeglądarki Firefox, mianowicie Firebug jako podstawę oraz rozszerzenie w postaci FirePath.

Przed uruchomieniem scrapera można wybrać atrybut, który chcemy poddać inspekcji TEXT lub HREF (domyślnie). Jaka jest różnica? HREF wybieramy, kiedy naszym celem jest wyodrębnienie np. linków, TEXT kiedy chcemy wydobyć np. anchor text z odsyłaczy. Ta funkcja została wprowadzona jako ułatwienie.

Po zakończeniu procesu na wyjściu otrzymamy listę linków, postów, artykułów, proxy lub inne dane, które można łatwo zapisać do pliku TXT. Program jest bardzo prosty, każdy sobie z nim poradzi.

W trybie automatycznym użytkownik może wczytać zestaw danych (URL + XPath footprint). Dzięki temu w kilkanaście minut można wykonać pracę, która normalnie zajmuje kilka godzin 🙂

Na zakończenie, wspierane są witryny, które zakodowane są w standardzie UTF-8. Jeśli trafimy na inne kodowanie, na wyjściu zobaczymy ładne krzaczki. W wersji Basic nie zostanie dodana obsługa innych standardów (np. iso-8859-2).

Link do pobrania programu znajdziecie na fanpage, zakładka Free SEO Tools.

O autorze

Mariusz Kołacz

Informatyką i nowymi technologiami zajmuje się od ponad 15 lat. Od 2008 roku moją drugą pasją jest marketing internetowy. Aktualnie prowadzę agencję reklamową, gdzie realizuję projekty z zakresu pozycjonowania i optymalizacji stron internetowych (SEO), reklamy na Facebooku i Google ADS (Google AdWords) oraz w zakresie optymalizacji konwersji w sklepach internetowych. Oprócz tego tworzę narzędzia SEO, piszę teksty, projektuję strony internetowe przyjazne SEO, w wolnych chwilach czytam literaturę z tematyki medycyny, parapsychologii.

18 komentarzy

Kliknij tutaj aby skomentować

  • RegEx są dla dzieciaków 😉 A tak naprawdę, to HTML jest językiem nieregularnym i wyrażenia regularne nie bardzo się do niego nadają. O wiele lepszy jest xpath o którym piszesz. Stosuję go też w swoim narzędziu Seoptimer.com

    Powiedz mi, jakie jest zastosowanie tego narzędzia? Zrozumiałem, że ono przetwarza tylko jeden podany URL…

    • Tak, przetwarza tylko jeden URL. Dlatego wersja podstawowa znajdzie zastosowanie głownie do testowania wyrażeń, no chyba że ktoś lubi ręcznie scrapować dane, ale jest to mozolna praca przy kilku tysiącach adresów.

  • o wiele bardziej uniwersalny jest Html Agility Pack do budowania narzędzi seo ze względu na parsowanie nie tylko XPATH, ale też XSLT i to bez większego zagłębiania się w ich strukturę

    • XScraper korzysta z Html Agility Pack 😉
      Praktycznie w każdym projekcie używam HAP mimo że w .NET jest XPath obecne (System.Xml.XPath).

    • to dobrze 🙂 w zasadzie mój komentarz to miała być odpowiedź do dyskusji z Pawłem Rabinkiem, a nie jako osobny wątek…

  • Czekałem na ten program. Przydałby mi się do wyciągania katalogów, tak jak na przykładzie u Ciebie. Ostatnio pobrałem google scrapera o którym pisałeś na blogu, ale już przy pierwszej próbie się wyłożył, więc podziękowałem. Nieliczna grupa ludzi będzie w posiadaniu wyższej wersji, a jakie trzeba spełniać kryteria, żeby się do niej zaliczać?

    • Wedle mojego uznania, nie więcej niż 4-5 osób (3 miejsca już zajęte). Nie będę ukrywał, że osoby, które w ten czy w inny sposób kiedyś mi pomogły będą miały większą szansę 🙂 Będę szczery – szansa że ktoś „z przypadku” otrzyma zaproszenie jest niewielka. Pozdrawiam!

  • Zaproszenia tylko dla vipów 🙂
    A tak serio bardzo fajny program, świetnie, że rozwijasz poprzednie i pracujesz nad nowymi pogratulować wytrwałości. Szczególnie, że to wszystko za free 🙂

    • Witaj.
      Początkowo miałem program udostępniać w zamian za multikody do katalogów, dostęp do prywatnych precli czy też płatne subskrypcje narzędzi.
      Niestety program nie będzie udostępniany odpłatnie. Na ten moment soft jest na etapie testów, usprawniania, wdrażania nowych funkcjonalności. Co będzie za kilka miesięcy tego nie wiem.

  • A czy i ja mógłbym liczyć na zaproszenie?:)
    W ramach koncepcji listy blogów z wpisami gościnnymi?:)

    btw, sprytne acz meczące jest to wymuszone klikanie w pole „przepisz wyraz…..”, używam TAB i zwykle muszę 2 razy wypełniać to pole…;)

    • Liczba miejsc wyczerpana ale zobaczę co da się zrobić.
      Może męczące ale dzięki temu ilość spamowych komentarzy zmalała o 99%, skuteczność większa niż Akismet.

  • mówię – sprytne:)
    ja tam ręcznie usuwam spam komenty, roboty więcej, ale czasem jakis spamer pokomentuje cos gdzie komentarza nie mam i moge go wtedy edytowac a wartosc dodana do bloga rosnie;) i to niskim kosztem:D

  • Używałem tego programu bardzo długo i super się sprawdzał ale od niedawna zacząłem korzystać z dodatku do Chroma o nazwie Scraper – jest jeszcze bardziej intuicyjny gdyż wystarczy ze klikniemy na dany link i lewym przyciskiem wybierzemy Scrape similar … nie trzeba nawet znać składni Xpath co może być wielkim uproszeniem dla wielu ludzi.

    • @Marek, pełna wersja XScrapera jest znacznie bardziej rozbudowana, proces scrapowania jest w 100% zautomatyzowany. Scraper z Chrome nie jest idealny bo wiele razy miałem sytuację, gdzie trzeba było poprawiać drzewo, żeby skutecznie wszystko wyłuskać, do tego o całkowitą automatyzację w jego przypadku znacznie trudniej. Stąd też pomysł na stworzenie własnego narzędzia – XScrapera.

    • Checked and everything works perfectly, RAR file was successfully extracted with 7-zip without any errors.