You are on page 1of 24

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

100 sposobw na tworzenie


robotw sieciowych
Autorzy: Kevin Hemenway, Tara Calishain
Tumaczenie: Tomasz mijewski
ISBN: 83-7361-452-4
Tytu oryginau: Spidering Hacks
100 Industrial-Strength Tips& Tools
Format: B5, stron: 384

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Internet to niewyczerpane rdo informacji. Zwykle jednak znalezienie w gszczu


witryn i danych tego, co jest naprawd potrzebne, jest zadaniem niezwykle trudnym.
Wyszukiwarki internetowe, nawet te najpopularniejsze i najbardziej efektywne
w dziaaniu, nie zawsze s odpowiednim rozwizaniem. W takich przypadkach trzeba
poszuka innego sposobu, a nawet opracowa wasn metod przeszukiwania sieci.
Ksika 100 sposobw na tworzenie robotw sieciowych moe suy pomoc
w wielu takich wanie przypadkach. Przedstawia sposoby tworzenia
i wykorzystywania pajkw przeszukujcych sie pod ktem okrelonych zasobw.
W ksice poruszono nastpujce zagadnienia:
Uwarunkowania prawne dotyczce korzystania z programw
przeszukujcych sie
Narzdzia do tworzenia robotw oraz wyszukiwania danych
Sposoby wyszukiwania i pobierania plikw multimedialnych
Przeszukiwanie sieciowych baz danych
Metody zapisywania zbiorw danych i aktualizowania ich
Tworzenie zbiorw danych atwych do przeszukiwania przez innych
W ksice przedstawiono techniki tworzenia kompletnych programw przeszukujcych
sie (pajkw), umoliwiajcych odnalezienie wszystkich potrzebnych danych.

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Spis treci
O Autorach....................................................................................................................................... 7
Wstp.............................................................................................................................................. 13
Rozdzia 1. agodne wprowadzenie ............................................................................................ 17
1.
2.
3.
4.
5.
6.
7.

Pajki i zbieranie danych: kurs na zderzenie............................................................... 17


Zasady obowizujce pajka i jego uytkownika ....................................................... 19
Anatomia strony HTML .................................................................................................. 23
Rejestrowanie pajka........................................................................................................ 26
Przedstawiamy si............................................................................................................ 28
Ostronie z uyciem pajka ............................................................................................ 30
Szukanie wzorcw w identyfikatorach......................................................................... 33

Rozdzia 2. Zestaw narzdzi ......................................................................................................... 37


8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.

Instalowanie moduw Perla .......................................................................................... 40


Po prostu pobieranie za pomoc LWP::Simple ........................................................... 42
Bardziej zoone dania LWP::UserAgent ............................................................ 44
Dodawanie do dania nagwkw HTTP .................................................................. 45
Wysyanie danych przez LWP ....................................................................................... 47
Uwierzytelnianie, ciasteczka i serwery proxy ............................................................. 49
Obsuga wzgldnych i bezwzgldnych adresw URL............................................... 53
Dostp do zabezpieczonych zasobw i atrybuty przegldarki .................................. 55
Ograniczanie zajmowanego pasma ............................................................................... 56
Poszanowanie dla pliku robots.txt................................................................................. 60
Dodawanie w skryptach paskw postpu ................................................................... 61
Pobieranie danych za pomoc HTML::TreeBuilder.................................................... 66
Analizowanie kodu za pomoc HTML::TokeParser................................................... 69
WWW::Mechanize 101 ..................................................................................................... 72
Pobieranie danych za pomoc WWW::Mechanize ..................................................... 75

Spis treci

23.
24.
25.
26.
27.
28.
29.
30.
31.
32.

Pochwaa wyrae regularnych..................................................................................... 79


Template::Extract: bezproblemowe RSS ....................................................................... 82
Wprowadzenie do XPath ................................................................................................ 85
Pobieranie zasobw za pomoc curl i wget ................................................................. 90
wget dla zaawansowanych ............................................................................................. 91
czenie polece potokami............................................................................................. 93
Jednoczesne uruchamianie wielu narzdzi .................................................................. 98
Uycie Web Scraping Proxy.......................................................................................... 100
Zawczasu unikaj kopotw ........................................................................................... 104
Liczenie si ze zmiennoci witryny ........................................................................... 107

Rozdzia 3. Zbieranie plikw multimedialnych ......................................................................... 109


33.
34.
35.
36.
37.
38.
39.
40.
41.
42.

Sprawa dla detektywa: Newgrounds.......................................................................... 109


Sprawa dla detektywa: iFilm ........................................................................................ 114
Pobieranie filmw z Biblioteki Kongresu USA ......................................................... 117
Pobieranie obrazw z Webshots .................................................................................. 120
Pobieranie komiksw dailystrips............................................................................ 124
Kolekcjonowanie kadrw z kamer sieciowych.......................................................... 126
News Wallpaper dla naszej witryny ........................................................................... 130
Zapisywanie samych zacznikw wiadomoci POP3............................................. 133
Pobieranie plikw MP3 z listy odtwarzania .............................................................. 139
Pobieranie danych z Usenetu za pomoc nget .......................................................... 144

Rozdzia 4. Zbieranie danych z baz danych .............................................................................. 147


43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.

Uycie yahoo2mbox do pobierania wiadomoci z grup Yahoo! .............................. 147


Archiwizacja wiadomoci z grup Yahoo! za pomoc WWW::Yahoo::Groups ........ 149
Zbieranie Buzz z Yahoo!................................................................................................ 153
Pajki w katalogu Yahoo!.............................................................................................. 155
ledzenie nowoci Yahoo! ............................................................................................. 162
Szukanie rozproszone w Yahoo! i Google.................................................................. 164
Idea mindshare i katalog Yahoo! w Google ............................................................... 168
Wyniki z Google bez dziennikw sieciowych ........................................................... 172
Pajki, Google a wiele domen ...................................................................................... 174
Pobieranie recenzji z Amazon.com.............................................................................. 178
Pobieranie drog pocztow nowo dodanych na Amazon.com recenzji ............... 180
Pobieranie zalece dla klienta Amazon.com ............................................................. 183
Publikowanie statystyk Amazon.com Associates ..................................................... 185
Sortowanie Amazon.com wedug ocen klientw...................................................... 187
Alexa i produkty podobne na Amazon.com.............................................................. 190

Spis treci

58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.

Uycie Javy do pobierania danych z Alexy ............................................................... 194


Znajdowanie danych o albumie za pomoc FreeDB i Amazon.com ..................... 196
Poszerzanie swoich horyzontw muzycznych.......................................................... 203
Horoskop na co dzie .................................................................................................... 207
Graficzna prezentacja danych: RRDTOOL................................................................. 209
Zbieranie notowa giedowych.................................................................................... 213
Wszystko o autorze ........................................................................................................ 216
Bestsellery wydawnictwa OReilly a zainteresowanie w bibliotece ...................... 230
Listy ksiek z All Consuming..................................................................................... 233
ledzenie paczek FedEx................................................................................................. 238
Szukanie nowych komentarzy w dziennikach sieciowych ..................................... 240
Agregowanie RSS i przesyanie zmian ....................................................................... 244
Uycie Link Cosmos na Technorati ............................................................................. 251
Szukanie powizanych pakietw RSS......................................................................... 254
Automatyczne znajdowanie interesujcych nas dziennikw sieciowych............. 264
Pobieranie zapowiedzi programu telewizyjnego...................................................... 267
Jaka jest pogoda u Twojego gocia? ............................................................................ 271
Okrelanie trendw wedug lokalizacji ...................................................................... 274
Znajdowanie najlepszych pocze kolejowych........................................................ 279
Palcem po mapie............................................................................................................. 282
Angielski sowniczek ..................................................................................................... 287
Zwizki sw w Lexical Freenet................................................................................... 291
Zmiana formatowania raportw Bugtraq .................................................................. 294
Zakadki w sieci via e-mail ........................................................................................... 298
Publikacja w swojej witrynie zakadki Ulubione ...................................................... 304
Analiza cen gier w GameStop.com.............................................................................. 311
Na zakupy z PHP ........................................................................................................... 313
czenie wynikw z rnych wyszukiwarek............................................................ 319
Robot Karaoke................................................................................................................. 323
Przeszukiwanie Biur na Rzecz Poprawy Jakoci Usug........................................... 326
Szukanie ocen sanitarnych ............................................................................................ 329
Nieprzyzwoitoci mwimy nie! ................................................................................... 332

Rozdzia 5. W trosce o wasny stan posiadania ....................................................................... 335


90.
91.
92.
93.

Uycie crona do automatyzacji zada ........................................................................ 335


Terminowe wykonywanie zada bez crona .............................................................. 337
Tworzenie kopii witryn za pomoc wget i rsync...................................................... 341
Gromadzenie wynikw poszukiwa .......................................................................... 344

Spis treci

Rozdzia 6. Teraz my dla innych................................................................................................. 349


94.
95.
96.
97.
98.
99.
100.

Uycie XML::RSS do przeksztacania danych ........................................................... 350


Umieszczanie w witrynie nagwkw RSS ................................................................ 353
Udostpniamy nasz witryn dla wyrae regularnych......................................... 356
Udostpnianie naszych zasobw dla automatw za pomoc interfejsu REST ....... 362
Udostpnianie zasobw przy uyciu XML-RPC....................................................... 365
Tworzenie interfejsu IM ................................................................................................ 369
Co dalej? ........................................................................................................................... 372

Skorowidz .................................................................................................................................... 375

Spis treci

1.

ROZDZIA PIERWSZY

agodne wprowadzenie
Sposoby 1. 7.
W sieci s obecnie ponad trzy miliardy stron, wic kady eglarz cyberprzestrzeni wczeniej czy pniej musi zada sobie dwa pytania: gdzie znale co wartociowego i co
mona z tym zrobi? Kady ma wasne pojcie o tym, co jest wartociowe, wikszo
ludzi ma te rne dobre pomysy o tym, jak takie rzeczy wykorzysta. S takie zaktki
sieci, w ktrych przeksztacanie danych do innych celw prowadzi do nagych olnie,
a to z kolei staje si pocztkiem nagej eksplozji nowych danych.
Z punktu widzenia sieci dopiero niedawno pojawiy si pierwsze narzdzia uatwiajce
korzystanie z powszechnie dostpnych danych. Kiedy serwis Google udostpni swoje
serwisy wyszukiwawcze za porednictwem interfejsw API (zajrzyj do ksiki Google
Hacks), podobny krok szybko zrobi Amazon.com (zajrzyj do Amazon Hacks); w jednym
i drugim wypadku owocem tych decyzji byo pojawienie si nowych narzdzi. W tym
krtkim i przyjemnym rozdziale przedstawimy Czytelnikom eleganck sztuk zbierania
danych i uywania pajkw: czym ona jest, a czym nie jest, co jest zwykle dozwolone,
a co niesie ze sob ryzyko. Powiemy, jak szuka alternatywnych metod dostpu do interesujcych danych i jak pozyska sobie przychylno autorw witryn (a tak naprawd to
przekaza im pewn wiedz), ktrzy na nasz automatyzacj patrz niechtnie.
SPOSB

1.

Pajki i zbieranie danych: kurs na zderzenie


Odpowiemy tu na pytania: dlaczego i w jakim celu instaluje si pajki i zbiera dane.

Istnieje mnstwo rozmaitych programw sucych do zbierania i odsiewania informacji,


czenia ze sob zasobw oraz porwnywania danych liczba tych programw stale
ronie. Ludzie to tylko cz znacznie wikszego i zautomatyzowanego rwnania. Jednak
mimo takiej obfitoci istniejcych programw, podstawowe zasady ich dziaania pozostaj
niezmienne.
Pajki to programy wdrujce po sieci, suce do zbierania informacji. W dziennikach
witryn sieciowych mona znale programy User-Agent, takie jak Googlebot, Scooter
czy MSNbot. S to wanie pajki lub, jak wol je nazywa z angielska niektrzy, boty.
W ksice tej bdziemy stale mwi o pajkach i programach zbierajcych czym rni
si jedne od drugich? Oglnie rzecz biorc, jedne i drugie wdruj po internecie i zbieraj
rne dane. Na potrzeby tej ksiki najlepiej traktowa pajki jako programy pobierajce
agodne wprowadzenie

17

SPOSB

1.

Pajki i zbieranie danych: kurs na zderzenie

cae strony, pliki lub ich zbiory, za programy zbierajce jako programy suce do pobierania wybranych fragmentw danych z caych plikw. Przykadowo, jeden z pajkw
[Sposb 44.], omawianych w tej ksice, przeznaczony jest do pobierania caych pakietw
(kolekcji) wiadomoci z Yahoo! Group, a nastpnie do przeksztacania ich w pliki poczty
elektronicznej, tak aby mona byo odczytywa je w programie pocztowym. Z kolei jeden
z programw zbierajcych [Sposb 76.] suy do pobierania ze stron danych o rozkadzie
jazdy pocigw. Pajki poruszaj si po hiperczach, zbierajc dane, natomiast programy zbierajce wybieraj ze stron informacje. Jedne i drugie s zwykle uywane cznie:
mona uywa programu wykorzystujcego pajka do poruszania si po czach, by potem
za pomoc programu zbierajcego wybiera jedynie interesujce dane.

Czemu pajki?
Poznajc jakkolwiek technologi czy sposb uycia technologii, zawsze dobrze jest zada
sobie wane pytanie: dlaczego? Dlaczego trudzi si pajkami? Po co marnowa czas na
pisanie pajka, testowanie go, uzyskiwanie zezwolenia od waciciela strony na jego uycie,
udostpnianie go innym i opiek nad jego kodem? Ot warto: kiedy raz zacznie si stosowa pajki, potem trudno wyobrazi sobie, jak mona byo si dotd bez nich obej.
Uzyskiwanie automatycznego dostpu do zasobw
Oczywicie, mona codziennie odwiedza kad interesujc nas stron, ale czy nie
prociej byoby napisa odpowiedni program, ktry wybraby jedynie interesujce
nas dane? Jeli pajk zwrci wyniki najczciej wykonywanego poszukiwania
w Google, mona zaoszczdzi mnstwo czasu, energii i unikn wielokrotnego
powtarzania tej samej pracy. Im bardziej prace bd zautomatyzowane, tym wicej
czasu mona bdzie powici uywaniu tych danych.
Zbieranie informacji i prezentowanie ich w formacie alternatywnym
Wyniki bada marketingowych, zbierane w formie wynikw, zwracane przez
wyszukiwark, mona zaimportowa do arkusza Microsoft Excel w celu pniejszej
ich prezentacji czy analizowania [Sposb 93.] Mona skopiowa swoje ulubione
archiwa Yahoo! Groups w takiej postaci, ktr program pocztowy bdzie w stanie
odczyta, tak jak odczytuje kady inny folder pocztowy [Sposb 43.] Mona
na bieco ledzi zawarto najciekawszych witryn bez koniecznoci pacenia
za kolejne wizyty [Sposb 81.] Kiedy ju mamy w rku interesujce nas dane,
mona je przeksztaca, zmienia ich ukad, formatowa wedle woli.
Agregowanie osobnych rde danych
adna witryna nie jest samotn wysp, cho nie jest to tak oczywiste, jeli wzi pod
uwag trudno rcznego integrowania danych z rnych witryn. Uycie pajkw
automatyzuje to mudne zadanie na przykad pomaga analizowa zmieniajce
si stopniowo wyniki Google [Sposb 93.] czy czy uzupeniajce si dane
[Sposb 69.] z rnych dziennikw w pojedynczy pakiet RSS. Pajki mona
przystosowa do zbierania danych zarwno z rnych rde, jak i z jednego
rda w rnych okresach.

18

agodne wprowadzenie

SPOSB

Zasady obowizujce pajka i jego uytkownika

czenie moliwoci rnych witryn


Wiele osb ma swoje ulubione wyszukiwarki, ktre jednak nie posiadaj wszystkich
potrzebnych funkcji. Braki te moe uzupeni inna wyszukiwarka, ktra z kolei moe
nie spenia innych wymaga. Pajk moe powiza moliwoci obu takich programw
[Sposb 48.] przez zadanie zapytania jednej przegldarce i przekazanie uzyskanych
odpowiedzi drugiej.
Znajdowanie i zbieranie informacji okrelonego typu
By moe najpierw trzeba bdzie przeszuka wyniki wyszukiwania; w naszym
imieniu pajk moe wykonywa zapytanie przez wypenianie formularzy i odsiewanie
potrzebnych wynikw [Sposb 51.]
Wykonywanie typowych zada administratora witryny
Codziennymi, rutynowymi zadaniami administratora moe zaj si pajk.
To on moe suy do sprawdzania kodu HTML, aby zapewni jego zgodno
ze standardami, do sprawdzania czystoci kodu (http://tidy.sourceforge.net/),
poprawnoci hiperczy, a take braku czy do zakazanych treci.
Wicej informacji o pajkach, robotach, pezaczach i programach zbierajcych
dane znale mona w witrynie Web Robot FAQ (czsto zadawane pytania
na temat sieciowych robotw) dostpnej pod adresem http://www.robotstxt.
org/wc/faq.html.
SPOSB

2.

Zasady obowizujce pajka i jego uytkownika


Wybrane zasady dotyczce pisania wasnych dobrze uoonych pajkw.

Aby tworzony pajk by skuteczny i tak przydatny, jak tylko to moliwe, trzeba podczas
jego tworzenia pamita o kilku zasadniczych kwestiach.

Nie bdmy zbyt wybredni


Uycie pajka oznacza pobieranie informacji z witryny. Aby pobra informacje, trzeba
przebi si przez mieszanin rnych znacznikw: HTML, XML, zwyky tekst lub jeszcze
inne formaty danych. Delikatnie mwic, nie jest to nauka cisa. Jeli zmieni si cho
jeden znacznik czy zmieni si cokolwiek w pliku formatujcym, pajk prawdopodobnie
przestanie dziaa i bdzie wymaga zrobienia w nim poprawek. Na szczcie wikszo
witryn nie jest gruntownie przebudowywana co sze miesicy, jak to kiedy bywao, ale
i tak witryny zmieniaj si na tyle czsto, aby trzeba byo to bra pod uwag.
Aby zredukowa wraliwo naszych narzdzi na wszelkie zmiany, podczas zbierania
danych ze strony naley uywa moliwie mao danych brzegowych. Dane brzegowe to
otoczka interesujcych nas treci: znaczniki, nadmiarowe informacje, spacje, znaki nowego
wiersza i tak dalej. Na przykad tytu kadej witryny wyglda mniej wicej tak:
<title>To jest tytu</title>

Jeli wanie tytu nas interesuje, to danymi brzegowymi s znaczniki <title> i </title>.

agodne wprowadzenie

19

2.

SPOSB

2.

Zasady obowizujce pajka i jego uytkownika

Regularnie naley sprawdza wyniki uzyskiwane od pajka, aby upewni si, e s one
zgodne z oczekiwaniami [Sposb 31.]. Moliwie szybko naley uwzgldnia wszelkie
zmiany, aby si nie pogubi, poza tym, projektujc pajka, naley uczyni go moliwie
elastycznym [Sposb 32.]

Nie ograniczajmy swoich zbiorw danych


To, e pracujemy ze stronami sieciowymi, nie oznacza, e musimy si ogranicza do
analizowania dokumentw HTML. Ograniczenie si jedynie do stron sieciowych oznacza
od razu ograniczenie dostpnego zbioru danych; w sieci s przecie take obrazy, dwiki,
filmy, pliki PDF, pliki tekstowe wszystkie one warte s tego, aby rozway doczenie
ich do swojej kolekcji.

Nie wywaajmy otwartych drzwi


Chtnie mylimy, e to, co robimy, jest jedyne w swoim rodzaju i niepowtarzalne, ale
niewykluczone, e wczeniej kto ju tworzy podobne pajki i pobiera dane z tych samych lub podobnych witryn, zostawiajc swoje lady w postaci kodu, czystych danych
czy instrukcji.
CPAN (http://www.cpan.org) Comprehensive Perl Archive Network (ang. Najwiksza
sie z archiwalnymi zasobami Perla) to prawdziwa skarbnica moduw Perla pozwalajcych programowa w internecie, przeglda tekst w poszukiwaniu danych, przeksztaca
zebrane zbiory danych wszystko to moe by wykorzystane przy tworzeniu wasnych
pajkw. Moduy te s dostpne za darmo: wystarczy je pobra, a nastpnie uywa,
modyfikowa i udoskonala. Kto wie, by moe, koczc tworzenie naszego pajka,
bdziemy mieli w swoim dorobku kilka nowych moduw, ktre bdziemy mogli udostpni komu innemu.
Przed rozpoczciem kodowania naley przejrze podan witryn, aby si upewni, e
nie powicamy mnstwa czasu i wysiku w stworzenie czego, co ju jest gotowe. Jeli
co rano chcemy mie w skrzynce pocztowej prognoz pogody, warto sprawdzi witryn
lokalnej gazety czy jak witryn powicon pogodzie (jak http://www.weather.com); prawdopodobnie jest tam potrzebna usuga. Jeli potrzebna jest zawarto witryny w formie
pakietu RSS, natomiast w witrynie tej nie wida pomaraczowego przycisku XML,
warto tej zawartoci poszuka w Google (rss site:example.com ( filetype:rss
| filetype:xml | filetype:rdf )) lub w witrynie Syndic8 (http://www.syndic8.com).
Nastpnie mona si oczywicie skontaktowa z wacicielem witryny, pytajc, czy dostpna jest dana usuga czy format danych. By moe to wanie pytanie przekona waciciela, e posiadanie pakietu RSS lub sieciowej usugi API z treci witryny jest dobrym
pomysem.
W podrozdziale Co dalej? [Sposb 100.] podana zostaa wiksza ilo adresw miejsc
powiconych pobieraniu zasobw.

20

agodne wprowadzenie

SPOSB

Zasady obowizujce pajka i jego uytkownika

Wskazwki dla uytkownika


Tak jak wane jest przestrzeganie pewnych zasad podczas programowania pajka, tak
wane jest przestrzeganie zasad podczas jego projektowania.
Wybieranie najbardziej strukturalnej postaci danych. Pliki HTML s w niewielkim
stopniu ustrukturyzowane, gdy koncentruj si na formie danych, a nie na ich treci.
Czsto witryny wystpuj w rnych postaciach; warto spyta o wersj XHTML czy
XML, ktra jest czystsza i ma cilej okrelon struktur. Uproszczona posta XML, RSS
wystpuje wszdzie.
Analiza HTML, jeli jest konieczna, powinna by moliwie prosta. Jeli potrzebne informacje s dostpne jedynie w formie HTML, warto poszuka wersji tekstowej lub wersji do
wydruku; wersje te zwykle maj prostszy kod HTML, wyszy wskanik proporcji treci
do prezentacji i w mniejszym stopniu podlegaj zmianie podczas reorganizacji strony.
Niezalenie od tego, jakie bdzie ostatecznie rdo danych, naley analizowa moliwie
mao kodu HTML tylko tyle, ile jest niezbdne do zlokalizowania odpowiednich danych.
Im mniej kodu HTML, tym mniej wraliwy bdzie pajk. Wicej informacji na ten temat
podano w Anatomii strony HTML [Sposb 3.]
Dobr waciwych narzdzi. Czy stron naley analizowa za pomoc wyrae regularnych? A moe lepiej zastosowa bardziej uniwersalne narzdzie jak WWW::Mechanize
[Sposb 22.] czy HTML::TokeParser [Sposb 20.]? W duym stopniu zaley to od interesujcych nas danych oraz od konstrukcji kodu HTML. Czy jest on pisany rcznie i nie
zachowuje ustalonych konwencji, czy jest generowany przez jakie narzdzie i przez to
zawiera powtarzajce si wzory? Naley wybra najprostsz i najmniej podatn na
awari metod, ktra jest dostpna; zreszt odporno na awarie jest z tych dwch rzeczy
waniejsza.
Nie wchod w szkod. Stworzony przez nas skrypt moe by wyjtkowo wyrafinowany,
ale nie ma to adnego znaczenia, jeli witryna, w ktrej chcemy go uruchamia, na to nie
pozwoli. Przed zabrniciem w tak sytuacj trzeba sprawdzi, czy w interesujcej nas
witrynie moliwe jest korzystanie z pajkw i dy do jak najmniejszego zuycia pasma
i zasobw [Sposb 16.] Wicej informacji na te tematy, z uwzgldnieniem kwestii prawnych, Czytelnik znajdzie w podrozdziaach Ostronie z uyciem pajka [Sposb 6.]
oraz Poszanowanie dla pliku robots.txt [Sposb 17.]
Dobr waciwego identyfikatora. Zapisujc identyfikator dla swojego pajka, trzeba
wybra taki, ktry jasno okreli moliwoci pajka: jakie informacje ma zbiera i do czego
jest uywany. Nie trzeba pisa powieci: wystarczy jedno zdanie. Identyfikatory takie nazywane s agentami uytkownika (User-Agents) i ustawianiem ich zajmiemy si w podrozdziale Dodawanie do dania nagwkw HTTP [Sposb 11.]
Cokolwiek si robi, nie naley podszywa si pod istniejce pajki, jak Googlebot, ani
nadawa identyfikatora, ktry atwo jest pomyli z istniejcym pajkiem. Nie do, e
pajk bdzie od razu traktowany jako podejrzany, to atwo o kopoty ze strony Google

agodne wprowadzenie

21

2.

SPOSB

2.

Zasady obowizujce pajka i jego uytkownika

czy innej firmy, pod ktr si podszywamy. Ewentualne konsekwencje takiego postpowania omwimy w podrozdziale Ostronie z uyciem pajka [Sposb 6.]
Udostpnianie informacji o pajku. Warto przygotowa stron internetow z informacjami o stworzonym pajku oraz z danymi kontaktowymi. Strona ta powinna by oczywicie widoczna w ulubionej przegldarce. W podrozdziale Rejestrowanie pajka
[Sposb 4.] omwione zostan sposoby informowania innych o istnieniu pajka.
Nie wymagaj zbyt wiele. Stworzenie nawet najdoskonalszej aplikacji od chwili pojawienia
si w Google programu PageRank niewiele znaczy, poniewa to i tak administrator strony
decyduje o prawach dostpu do niej czy do jej poszczeglnych obszarw. Naley uprzejmie prosi o taki dostp, nie za kategorycznie go da. Dzielmy si swoimi dowiadczeniami: by moe warto nawet przedstawi stworzony kod! W kocu przecie chcemy
pobiera z ich strony informacje. Udostpnienie programu w zamian za informacje jest
uczciwym postawieniem sprawy.

Wskazwki dla pajka


Piszc pajka, trzeba pamita o pewnych zasadach.
Poszanowanie dla pliku robots.txt. Plik robots.txt znajduje si w katalogu gwnym
witryny; stanowi on informacj dla pajkw o tym, do czego na danym serwerze mog
mie dostp. Plik ten moe nawet spowodowa, e niektre pajki bd musiay opuci
stron bez zagldania gdziekolwiek. Wielu administratorw witryn wykorzystuje sposb traktowania tego pliku przez pajka jako papierek lakmusowy: jeli pajk ignoruje
robots.txt, zwykle jest wyrzucany ze strony. Szczegowe porady na ten temat znajduj
si w podrozdziale Poszanowanie dla pliku robots.txt [Sposb 17.].
Poza plikiem robots.txt istnieje jeszcze znacznik META Robots
(http://www.robotstxt.og/wc/exclusion.htmlk#meta), ktry podaje instrukcje
dla pajkw dotyczce indeksowania dla poszczeglnych stron. Protok
znacznika META Robots nie jest nawet w przyblieniu tak uniwersalny
jak plik robots.txt i jest znacznie rzadziej uwzgldniany przez pajki.

Ograniczanie obcienia. Nawet jeli zawarto witryny jest doskonaa i chcielibymy


dla naszej aplikacji pozyska jak najwicej danych, nie warto by zachannym. Jeli pajk
prbuje w krtkim czasie pobra zbyt wiele danych dziesitki czy nawet setki stron
na sekund moe to si w widoczny sposb odbi na dopuszczalnej przepustowoci
strony oraz na moliwoci dostpu do tej strony przez innych uytkownikw. Mona
wtedy usysze Ten kretyski pajk zapcha mi cay serwer i wszystko dziaao koszmarnie wolno!
Nie ma jakich okrelonych norm, jak szybko pajk moe pobiera strony, aby nie by
uznanym za uciliwego intruza. Uczestnicy forum WebmasterWorld.com najczciej
mwili o jednym, dwch daniach na sekund.

22

agodne wprowadzenie

SPOSB

Anatomia strony HTML


WebmasterWorld.com (http://www.webmasterworld.com) to dziaajce w internecie
forum mionikw wyszukiwarek i administratorw witryn z caego wiata.
Odbywa si tam wiele dyskusji na istotne tematy. Co najwaniejsze, gos
zabieraj przedstawiciele niektrych wyszukiwarek i liczcych si witryn.

Niestety, wydaje si, e atwiej jest powiedzie, czego nie mona zaakceptowa, ni poda
jaki rozsdny limit. Dla osb cierpliwych jedno czy dwa dania na sekund wystarcz;
intensywniejsze pobieranie danych moe spowodowa furi waciciela strony. Zrobi
mona wszystko, byle by na to czas; jeli dane nie s potrzebne natychmiast, stopniowym ich pobieraniem moe zaj si pajk. Wicej szczegw na ten temat znajduje si
w podrozdziale Ograniczanie zajmowanego pasma [Sposb 16.]
Tyle, ile trzeba i wtedy, kiedy trzeba. Nadmierne pobieranie to po prostu branie wicej
danych ni trzeba i przez to zajmowanie szerszego pasma ni jest to niezbdne. Jeli potrzebna jest strona, naley pobra stron. Nie wolno wtedy pobiera caego katalogu ani
(niech Bg broni!) caej witryny.
To samo dotyczy czasu. Nie naley pobiera strony czciej ni jest to konieczne. Jeli program z danymi z takiej strony bdzie uruchamiany raz dziennie, wystarczy te dane raz
dziennie pobra. Nie zaleca si pobierania danych czciej ni raz na godzin, jeli nie
jest to absolutnie niezbdne (cho i tak wymagana jest wtedy zgoda waciciela strony).
SPOSB

3.

Anatomia strony HTML


Aby umie pobiera dane, nie wystarczy umie programowa; trzeba jeszcze zna HTML
i zna rne rodzaje plikw zwizanych z witrynami sieciowymi.

Dla osb dopiero zapoznajcych si ze wiatem pajkw internetowych podjcie decyzji,


co naley pobra i dlaczego, nie jest atwe. Zdarza si pobiera zbyt duo danych, zbyt
mao lub pobierane s dane, ktre zmieniaj si czciej ni powinny. Znajomo budowy
plikw HTML uatwia wybieranie tylko tych danych, o ktre chodzi.
Pliki HTML to zwyke pliki tekstowe, tyle e specjalnie sformatowane. Z takimi wanie
plikami zwykle mamy do czynienia, zajmujc si pajkami: zarwno w tej ksice, jak
i w codziennej praktyce. Wprawdzie bdziemy dalej zajmowa si szukaniem i pobieraniem plikw multimedialnych: obrazkw, filmw, plikw dwikowych, ale nie bdziemy
ich analizowa ani wydobywa z nich adnych danych.

Anatomia strony HTML


Stron HTML mona sformatowa na niemale tyle sposobw, ile stron jest w internecie.
Jeli mamy nakaza pajkowi wyszukiwa na stronie HTML interesujce nas dane, musimy
wiedzie, jak takie strony s zbudowane i jak mog by uoone w nich informacje.
Zasadniczo strona HTML wyglda tak:
<html>
<head>

agodne wprowadzenie

23

3.

SPOSB

3.

Anatomia strony HTML


<title>
Tytu strony
</title>
</head>
<body>
Tre strony
</body>
</html>

I to tyle. Taki jest oglny zarys 99% stron HTML znajdujcych si w sieci. Strony te mog
by o wiele bardziej rozbudowane, ale oglna zasada jest wanie taka. Co to oznacza dla
naszych pajkw? Oznacza to, e tylko jeden fragment informacji jest wyranie oznakowany: tytu strony. Jeli potrzebny by nam tylko tytu, znalelimy to, o co nam chodzio.
Jeli jednak potrzebne s nam dane z treci strony, na przykad nagwek czy data, jeszcze
sporo pracy przed nami. Niejednokrotnie tre strony zawiera kilka tabel, kod JavaScript
i inne fragmenty kodu utrudniajce dotarcie do tego, co nas interesuje; wszystkie te niedogodnoci w znacznie wikszym stopniu wi si z formatowaniem, a nie z organizacj
danych. Z drugiej jednak strony jzyk HTML zawiera pewne standardowe metody organizowania danych. Niektre z nich powoduj powikszenie pewnych informacji na ekranie
jako nagwkw. Inne su do zestawiania danych w listy. Zrozumienie sposobu dziaania tych metod uatwi wybieranie informacji ukrytej gboko w strukturze strony.

Treci nagwkowe w znacznikach H


Istotne informacje na stronie (nagwki, podtytuy, uwagi i tak dalej) s zwykle ujmowane
znacznikami <Hx>, gdzie x to cyfra od 1 do 6. Standardowo tre znacznika <H1> jest na
ekranie najwiksza, gdy jest to nagwek stojcy w hierarchii najwyej.
Czasami pobranie nagwkw pozwala zorientowa si w zawartoci tej strony, cho
zaley to od jej konstrukcji. Jeli na przykad pobieramy dane ze strony z najwieszymi
wiadomociami i wiemy, e nagwki zawsze s ujmowane znacznikami <H2>, za podtytuy znacznikami <H4>, mona pobra odpowiednie znaczniki i pobra krtki spis treci
artykuw bez koniecznoci analizy caego oznakowania. Tak naprawd, jeli wiadomo,
e strona zawsze jest oznakowana w opisany sposb, mona okreli tre caej witryny
na podstawie wymienionych znacznikw, bez koniecznoci analizowania reszty stron.

Specjalne znaczniki HTML obsugujce listy


Nie kady projektant witryny uywa list do organizowania danych; niektrzy korzystaj
po prostu z kolejnych, numerowanych akapitw. Jednak listy zwykle tworzy si za pomoc
specjalnych znacznikw.
Listy uporzdkowane (ktrych pozycje s automatycznie numerowane) ograniczone s
znacznikami <ol> i </ol>, natomiast kady element listy ograniczony jest znacznikami
<li> i </li>. W przypadku uywania wyrae regularnych do pobierania informacji,

24

agodne wprowadzenie

SPOSB

Anatomia strony HTML

mona wybra ca tre spomidzy <ol> i </ol>, przeanalizowa poszczeglne pary


<li></li>, wstawi ich zawarto do tablicy i dalej normalnie ju przetwarza. Oto
przykad listy uporzdkowanej:
<ol>
<li>jajka</li>
<li>mleko</li>
<li>maso</li>
<li>cukier</li>
</ol>

Listy nieuporzdkowane s bardzo podobne do list uporzdkowanych, ale zamiast liczb


pokazywane s wyrniki graficzne (zazwyczaj kka), natomiast caa lista ujta jest w par
znacznikw <ul></ul> zamiast <ol></ol>.

Pliki inne ni HTML


Niektre pliki inne ni HTML s rwnie zmienne jak pliki HTML, inne z kolei s lepiej
opisane. Przykadowo, zwyke pliki .txt (ktrych jest w sieci mnstwo) nie maj adnych
informacji formatujcych, nawet tak elementarnych, jak oddzielenie tytuu od treci. Pliki
te jednak czsto s atwiejsze do analizy, gdy nie maj mnstwa kodu HTML utrudniajcego ich interpretowanie.
Drug skrajnoci s pliki XML (XML to rozszerzalny jzyk znacznikw, ang. eXtensible
Markup Language). Poszczeglne czci pliku XML s opisane znacznie lepiej ni ma to
miejsce w HTML. RSS, format wymiany danych stanowicy uproszczon form XML,
ma jasno okrelone czci plikw, takie jak tytuy, tre, cza i informacje dodatkowe.
W ksice tej czsto uywamy plikw RSS; cile zdefiniowane czci s atwe do analizy
i zapisu w Perlu. Zobacz Uycie XML::RSS do przeksztacania danych [Sposb 94.]
Pierwsze, co trzeba zrobi przed pobraniem danych, to okrelenie typu pliku. Jeli jest to
zwyky plik tekstowy, .txt, niemoliwe bdzie dokadne wskazanie interesujcych nas
treci. Jeli jest to plik XML, moliwe bdzie signicie do potrzebnych czci za pomoc
wyrae regularnych lub skorzystanie z jednego z wielu perlowych moduw obsugujcych XML (jak XML::Simple, XML::RSS czy XML::LibXML).

XHTML: Hybryda XML i HTML


Z poprzednich przykadw wywnioskowa mona, e o ile w HTML dua cz
kodu dotyczy formatowania, to sposb zorganizowania danych na typowej stronie jest zdecydowanie sabiej opisany. Pojawi si ju jednak standard XHTML
(rozszerzalny jzyk znacznikw hipertekstowych, ang. eXtensible HyperText Markup
Language). By moe w przyszoci XHTML zastpi HTML. Sposb zapisu stron
w nowym jzyku jest cilej narzucony ni w HTML, za uzyskiwany kod jest
prostszy w analizie.

agodne wprowadzenie

25

3.

SPOSB

4.

Rejestrowanie pajka
SPOSB

4.

Rejestrowanie pajka
Jeli planujemy uycie jakiego pajka, musimy si choby w minimalnym stopniu upewni, e atwo
go bdzie zidentyfikowa. Nawet najprostszy pajk moe by przedmiotem intensywnego zainteresowania.

W internecie stale tocz si wojny: czy to midzy spamerami i antyspamerami, czy to


midzy zwolennikami systemw wymiany plikw i ich przeciwnikami. Mniej agresywna wojna toczy si midzy pajkami sieciowymi a wacicielami witryn, ktrzy nie
ycz sobie dziaa pajkw.
Kady moe by przeciwny analizowaniu jego stron przez pajki. Niestety, nie wszystkie
pajki s tak przyjazne jak Googlebot program indeksujcy serwisu Google. Wiele
pajkw przemieszcza si po rozmaitych stronach w celu zbierania adresw poczty elektronicznej dla spamerw. Jeszcze inne nie stosuj si do zasad przyjaznego pobierania
danych [Sposb 2.] W tej sytuacji przez dowiadczonych administratorw witryn pajki
bywaj traktowane bardzo podejrzliwie.
Tak naprawd sytuacja jest na tyle powana, e nasz pajk moe zosta po prostu zablokowany. Biorc to pod uwag, trzeba starannie dobra nazw dla pajka, rejestrujc go
w sieciowych bazach danych oraz dbajc o to, e bdzie dostatecznie dobrze postrzegany
w sieci.
Tak na marginesie, wydawa si moe, e tworzony przez nas pajk bdzie zbyt mao
istotny, aby w ogle ktokolwiek mg go zauway. Jednak w rzeczywistoci prawdopodobnie wcale tak nie bdzie. Witryny typu Webmaster World (http://www.webmasterworld.
com) maj cae fora powicone identyfikowaniu i omawianiu pajkw. Nie naley zakada, e pajk bdzie ignorowany tylko dlatego, e nie uywa tysicy dziaajcych non stop
serwerw i nie analizuje dziennie milionw stron.

Nazwa dla pajka


Pajkowi naley dobra tak nazw, ktra powie co o tym, czym jest ten program i czemu
ma suy. Nie jest zatem dobr nazw Botprzykladowy, lepsz ju jest PobierzObrazkiZNews czy w angielskiej wersji NewsImageScraper. Gdy pajk jest kontynuacj wczeniejszego programu, warto w nazwie oznaczy wersj, na przykad NewsImageScraper/1.03.
W przypadku uywania wielu pajkw warto zastanowi si nad nadaniem im wsplnej nazwy; na przykad Kevin mgby nada kademu z nich nazw zaczynajc si od
disobeycom: disobeycomNewsImageScraper, disobeycomCamSpider, disobeycomRSSfeeds
i tak dalej. Jeli dziaanie pajkw bdzie zgodne z przyjtymi powszechnie zasadami,
podejrzliwy administrator, widzc kolejnego pajka o podobnej nazwie, moe spojrze
na niego przychylniejszym okiem. Jeli natomiast programy te bd bezczelne, podobne nazwy uatwi administratorom szybkie ich odrzucenie bo takie pajki na to
tylko zasuguj.
Te rozwaania mog nasun myl: czemu nie nazwa swojego pajka tak, jak nazwany
jest pajk ju istniejcy? W kocu przecie wikszo witryn udostpnia swoje zasoby
pajkowi Googlebot czemu nie skorzysta z jego nazwy?

26

agodne wprowadzenie

SPOSB

Rejestrowanie pajka

Jak wspomnielimy, jest to zy pomys, i to z wielu powodw; midzy innymi dlatego,


e waciciel pajka, ktrego nazwa zostanie uyta, prawdopodobnie zablokuje imitatora.
Istniej witryny, takie jak http://www.iplists.com, powicone ledzeniu adresw IP legalnych pajkw jest na przykad caa lista adresw zwizanych z pajkiem Googlebot.
Poza tym, cho nie ma dotd zbyt bogatego orzecznictwa dotyczcego podszywania si
pod czyje pajki, to firma Google ju wykazaa, e nie bdzie uprzejmie traktowaa nikogo
naduywajcego czy uywajcego bez zezwolenia nazwy Google.

Strona powicona pajkowi


Kiedy ju stworzymy pajka, musimy go zarejestrowa. Warto dla niego stworzy stron
w internecie, tak aby ciekawscy i ostroni administratorzy witryn mogli atwo znale
informacje o nim. Strona taka powinna zawiera:
Nazw, jaka pojawia si w dziennikach systemowych (jako User-Agent).
Krtkie omwienie, czemu pajk ma suy i co robi (wraz z hiperczem do zasobw
przez pajka zbieranych, o ile s one publicznie dostpne).
Dane kontaktowe programisty, ktry stworzy pajka.
Informacje o tym, jak administratorzy mog w zalenoci od potrzeb zablokowa
skrypt lub uatwi jego dziaanie.

Gdzie rejestrowa pajka


Kiedy ju mamy stron powicon naszemu pajkowi, trzeba tego pajka zarejestrowa
w dostpnych w sieci bazach danych. Po co? Gdy administratorzy witryn mog zacz
szukanie pajka w bazach danych, zamiast podawa jego nazw w wyszukiwarkach.
Mog te na podstawie tych baz danych podejmowa decyzje, ktrym pajkom pozwoli
na dziaanie w swoich witrynach. Oto kilka baz danych, od ktrych mona zacz:
Baza robotw sieciowych (http://www.robotstxt.org/wc/active.html)
Baz t mona przeglda w rnych formatach. Dodanie pajka wymaga wypenienia
szablonu i wysania informacji na wskazany adres poczty elektronicznej.
Wyszukiwarka robotw (http://www.jafsoft.com/searchengines/webbots.html)
Programy User-Agent i pajki uoone s tu wedug kategorii: roboty wyszukiwarek,
przegldarki, kontrolery hiperczy i tak dalej wraz z listami oszustw; dodatkowo
znajduj si tu komentarze od administratorw.
Lista programw User-Agent (http://www.psychedelix.com/agents.html)
Ta baza danych podzielona jest na wiele stron i czsto jest aktualizowana. Proces
dodawania nowych pozycji nie jest dokadnie okrelony, cho na dole wszystkich
stron znajduje si adres poczty elektronicznej.
Baza danych programw User-Agent (http://www.icehousedesigns.com/useragents/)
Baza zawiera prawie 300 agentw; mona j przeszukiwa na rne sposoby.
Witryna zawiera adres poczty elektronicznej, na ktry mona przesa swojego pajka.

agodne wprowadzenie

27

4.

SPOSB

5.

Przedstawiamy si
SPOSB

5.

Przedstawiamy si
Zamiast czeka, a kto naszego pajka wykryje, niech pajk przedstawi si sam!

Niezalenie od tego, jak dyskretny i ostrony jest nasz pajk, wczeniej czy pniej zostanie zauwaony. Niektrzy administratorzy witryn zechc sprawdzi, do czego pajk suy
i zechc uzyska odpowiedzi na szereg innych pyta. Zamiast czeka na to, co si stanie,
czemu nie wzi spraw w swoje rce i samemu si nie przedstawi? Zastanwmy si, jak
mona si do tego zabra, jak swojego pajka popiera i jak informowa o nim innych.

Nawizywanie kontaktu
Skoro napisalimy doskonaego pajka, czemu si nim nie pochwali w witrynie? W przypadku maych witryn jest to wzgldnie proste: wystarczy odszuka cze Feedback, Kontakt,
About czy temu podobne. W przypadku wikszych witryn jednak znalezienie osoby
odpowiedniej do nawizania kontaktu staje si trudniejsze. Najpierw naley sprawdzi
kontakty techniczne, dopiero potem kontakty zwyke. Okazuje si, e najlepiej w miar
monoci unika kontaktw z dziaami public relations (PR). Wprawdzie atwo si z nimi
skontaktowa, gdy zwykle to ich adresy s najbardziej widoczne, ale osoby z tych
dziaw najchtniej rozmawiaj z pras, poza tym rzadko maj na tyle du wiedz
techniczn, aby zrozumie, o co ich pytamy (do osb z dziaw PR: prosimy tego nie
traktowa jako lekcewaenia; i tak was kochamy; promujcie nadal ksiki wydawnictwa
OReilly buziaczki, autorzy).
Jeli naprawd trudno znale jakikolwiek rozsdny kontakt, mona sprbowa poniszych trzech krokw:
1. Wiele witryn, szczeglnie powiconych zagadnieniom technicznym, ma pracownikw
zajmujcych si dziennikami. Warto sprawdzi, czy uda si te dzienniki znale
za pomoc wyszukiwarki Google. Jeli na przykad interesuj nas pracownicy Yahoo!,
dobrze sprawdzi si zapytanie "work for yahoo" (weblog | blog). Czasami
mona si z tymi wanie osobami skontaktowa i dogada si, wtedy oni s w stanie
przekaza list do osoby wadnej prob speni lub jako inaczej odpowiedzie.
2. W 99,9% przypadkw zadziaa adres webmaster@ (na przykad webmaster@przykladowa.
witryna.com). Nie zawsze jednak mona zakada, e osoba, korzystajca z tej skrzynki,
czyta j czciej ni raz na miesic, a bywa jeszcze gorzej.
3. Jeli ju nic nie dziaa, nie sposb znale adresw poczty elektronicznej, a listy
wysyane na adres webmaster@ wracaj z powrotem, warto zajrze do witryny
powiconej rejestracji domen, jak http://www.whois.org. Zwykle mona tam znale
przy adresie domeny jaki adres kontaktowy, cho znowu nie ma adnych gwarancji,
e skrzynka tak jest w ogle sprawdzana, a nawet e nie zostaa ju usunita. Poza
tym pamita trzeba, e dziaa to jedynie na poziomie domen najwyszego poziomu.
Innymi sowy by moe uda si uzyska kontakt z adresem www.przykladowy.com,
ale ju nie www.przykladowy.com/zasob/.

28

agodne wprowadzenie

SPOSB

Przedstawiamy si

Popieranie swojego pajka


Teraz, kiedy mamy ju adres kontaktowy, naley przekaza na jakie argumenty przemawiajce za naszym pajkiem. Jeli jasno opiszemy, co pajk robi, to wietnie. Jednak
moe okaza si, e trzeba zakodowa przykad do pokazania administratorowi. W przypadku gdy nasz rozmwca nie jest znawc Perla, by moe warto stworzy dziaajc po
stronie klienta wersj skryptu narzdziem Perl2Exe (http://www.indigostar.com/perl2exe.htm)
lub PAR (http://search.cpan.org/author/AUTRIJUS/PAR) i tak wersj wysa jako testow.
Nie wahajmy si udostpni naszego kodu. Wyjanijmy, jak dziaa. Podajmy przykadowe wyniki. Jeli kod si spodoba, zaproponujmy rozpowszechnianie go z witryny,
o ktr nam chodzi! Pamitajmy, e wszyscy administratorzy, niezajmujcy si programowaniem, spodziewaj si stwierdzenia typu: Cze, napisaem ten program i on na
Twojej stronie robi to i tamto. Czy nie masz nic przeciwko temu, abym go uy? Jasne
jest, e administrator bdzie oczekiwa penych wyjanie i pewnych gwarancji.

Pajk powinien by widoczny


Kolejnym dobrym sposobem zapewnienia, e inni bd wiedzieli o naszym pajku, jest
zawarcie w klauzuli User-Agent pajka danych kontaktowych [Sposb 11.] Moe to
by adres poczty elektronicznej lub adres strony. Trzeba pamita potem o sprawdzaniu
tego adresu i zapewnieniu, e znajd si pod nim oczekiwane informacje.

Kwestie prawne
Mimo nawizania kontaktw, uzyskania pozwolenia i udostpnienia mnstwa informacji
o pajku w sieci, jego dziaanie nadal moe budzi pewne wtpliwoci. Czy pajk jest legalny? Czy uycie go nie pocignie za sob kopotw?
Jeli chodzi o prawa dotyczce sieci, to istnieje jeszcze wiele kwestii otwartych i sdziowie, eksperci i naukowcy, nie mwic ju o zwykych uytkownikach, nie s zgodni co
do wielu zagadnie. Uzyskanie pozwolenia i przestrzeganie jego warunkw pozwoli
unikn licznych kopotw, szczeglnie w przypadku maych witryn (utrzymywanych
przez pojedyncze osoby, a nie przez wielkie korporacje). Jeli dziaamy bez uzyskania
pozwolenia, natomiast warunki uycia witryny nie s wyranie okrelone, ryzyko stosowania pajka jest ju wiksze. Podobne ryzyko istnieje zwykle w przypadku dziaania
w witrynach, w ktrych nie zapytalimy o pozwolenie, a ktre oferuj interfejs API i maj
jasno okrelone zasady uycia (jak Google).
Warunki prawne uywania internetu stale si zmieniaj: medium to jest po prostu zbyt
nowe, aby mogy istnie w nim niezmienne warunki, okrelajce, co jest dopuszczalne,
a co nie. Nie chodzi tylko o to, jak pajk dziaa, ale te o to, co moe zbiera. Autorzy pragn ostrzec, e stosowanie jednego z opisanych w ksice sposobw wykorzystywania
pajka nie oznacza, e nie wie si to z takim czy innym ryzykiem i e aden administrator nie uzna tego za naruszenie jego praw lub praw innych podmiotw.

agodne wprowadzenie

29

5.

SPOSB

6.

Ostronie z uyciem pajka

Trzeba uywa zdrowego rozsdku (niewtpliwie nierozsdne jest pobranie wszystkiego


z jakiej witryny, umieszczenie tego w swojej i uwaanie, e wszystko jest w porzdku).
Trzeba te prosi o pozwolenie najgorsze, co si moe zdarzy, to odmowa. W przypadku naprawd powanych wtpliwoci pozostaje porozmawia z dobrym prawnikiem.
SPOSB

6.

Ostronie z uyciem pajka


Tu i tam pojawiaj si ciekawe dane. Zanim po nie signiemy, sprawdmy,
jak mona z danej witryny korzysta.

Poniewa celem naszej ksiki jest pokazanie, jak pobiera dane niedostpne dla interfejsu API, czasami moe si okaza, e dziaamy w szarej strefie. Oto kilka porad, ktre
bd pomocne w unikniciu zablokowania nas lub nawet zaskarenia.
By moe pewnego dnia po odwiedzeniu jakiej strony znajdziemy na niej wspaniae
dane, ktre bardzo chcielibymy posi. Zanim jednak zabierzemy si za ich pobieranie,
warto rozejrze si za zasadami dopuszczalnego uycia (ang. Acceptable Use Policy, AUP)
lub warunkami wiadczenia usug (ang. Terms of Service, TOS); czasami mog to by te
warunki uycia (ang. Terms of Use, TOU). W takich dokumentach przeczyta mona, co
jest w witrynie dopuszczalne i co wolno zrobi z danymi z tej witryny. Zwykle na dole
strony znajduje si hipercze do strony z informacjami o prawach autorskich. Odpowiednie hipercze w witrynie Yahoo! nazywa si Terms of Reference i jest przy samym kocu strony gwnej, natomiast w witrynie Google hipercze to znajduje si na dole strony
About. Jeli odpowiedniego cza nie uda si znale na stronie gwnej, warto przeszuka wszelkie strony About. Czasami witryny, szczeglnie te mniejsze, nie maj w ogle
odpowiednich zapisw, naley wic skontaktowa si z administratorem, niemale zawsze
dostpnym pod adresem webmaster@nazwa.witryny.com, i zapyta o zgod.
Tak wic mamy ju AUP czy TOS. Czego waciwie szukamy? Czegokolwiek, co dotyczy uywania pajkw i automatycznego zbierania danych. W przypadku aukcji eBay
wszystko jest jasne, gdy wynika z poniszego wyjtku z umowy:
Uytkownicy zgadzaj si nie uywa robotw, pajkw, programw zbierajcych dane
ani innych automatw do korzystania z Witryny w adnym wypadku, o ile nie uzyskaj
naszej pisemnej zgody.
Jasne, prawda? Czasami jednak nie jest to tak wyranie opisane. Niektre umowy nie maj
adnych odniesie do pajkw czy programw zbierajcych dane. W takich wypadkach
naley skontaktowa si z administratorem lub pracownikami technicznymi i spyta.

Niedobry pajczek, a sio!


Nawet jeli stosujemy si do obowizujcych warunkw korzystania ze strony, moe
okaza si, e nasz pajk powoduje problemy. Jest kilka powodw, dla ktrych pajk,
mimo e dziaa zgodnie z liter prawa, moe by nie do przyjcia dla wacicieli stron.
Na przykad w witrynie moe by umieszczony zakaz dalszego rozpowszechniania jej
treci w internecie. Wtedy pojawia si nasz pajk i pobiera dane w formie RSS. Pakiet

30

agodne wprowadzenie

SPOSB

Ostronie z uyciem pajka

RSS formalnie nie jest stron sieciow, ale autorzy witryny i tak mog takie dziaania
uzna za niedopuszczalne. Nic nie zakazuje wacicielom takiej witryny zmieni zapisy
TOS, tak aby uniemoliwi dziaanie pajka z jednoczesnym wysaniem nam zakazu
dalszego prowadzenia naszej dziaalnoci.
Pomimy na chwil wszystkie te zastrzeenia. Nie namawiamy oczywicie nikogo do
naruszania warunkw wiadczenia usug, wykcania si z prawnikami i tak dalej. Warunki wiadczenia usug czemu przecie su; zwykle s w nich opisane zasady, ktrych
przestrzeganie pozwala na utrzymanie strony. Cokolwiek robi nasz pajk, musi to robi
tak, aby nie utrudnia normalnego funkcjonowania wykorzystywanej strony. Jeli pajk
pobierze wszystkie informacje z witryny utrzymywanej z reklam, niemoliwe bdzie
dalsze korzystanie z tej metody finansowania, a wwczas co si stanie? Strona zniknie.
Nie bdzie strony, wic nasz pajk te nie bdzie mia gdzie dziaa.
Wprawdzie rzadko ma to zwizek z uywaniem pajkw, ale przypomnijmy, e ju od
dawna panuje zgoda co do tego, e framing danych jest prawnie niedopuszczalny. Framing
danych polega na tym, e czyja witryna jest umieszczana w cudzej ramce (w wyniku
tego czyje dane pojawiaj si pod inn mark). Strona zwykle zawiera reklamy, z ktrych
kto si utrzymuje; pobieranie treci strony pajkiem i wstawianie we wasne strony z ramkami jest niewtpliwie niedopuszczalne i nie naley tego robi.

Naruszanie praw autorskich


Nawet nie powinnimy o tym mwi, ale formalnoci musi sta si zado. Jeli uywamy
pajka po to, aby w naszej witrynie umieci czyj wasno intelektualn, naruszamy
prawo. Niechby pajk najcilej jak tylko mona przestrzega warunkw wiadczenia usug
i trzyma si wszystkich oglnie przyjtych zasad, to jego uycie w takim celu byoby
nielegalne. W takim wypadku pajka nie daje si poprawi, gdy problem nie ley w kodzie.
Lepiej zastanowi si nad celem stosowania skryptu. Wicej informacji o prawach autorskich
i wasnoci intelektualnej w sieci znale mona w dzienniku Lawrencea Lessiga dostpnym pod adresem http://www.lessig.org/blog/ (Lessig jest profesorem prawa Szkoy Prawniczej w Stanford), w witrynie fundacji Electronic Frontier Foundation (http://www.eff.org)
oraz Copyfight (http://www.copyfight.org/).

Agregowanie danych
Agregowanie danych polega na zbieraniu danych z rnych rde i zestawianiu ich wszystkich razem. Wyobramy sobie witryn zawierajc ceny biletw rnych linii lotniczych
albo witryn umoliwiajc porwnywanie cen z rnych ksigarni internetowych. W internecie dziaaj ju serwisy skupiajce rne dane; stanowi one swoist szar stref internetowej etykiety. Niektre firmy wyranie nie ycz sobie gromadzenia ich danych i porwnywania ich z danymi z innych stron (na przykad aby porwnywa ceny sklepowe), dla
innych firm nie ma to adnego znaczenia. Istniej firmy, ktre podpisuj umowy okrelajce
zasady skupiania ich informacji! Rzadko tego typu informacje ujmowane s w warunkach
wiadczenia usug, wic w razie wtpliwoci trzeba pyta.

agodne wprowadzenie

31

6.

SPOSB

6.

Ostronie z uyciem pajka

Wywiad gospodarczy
Waciciele niektrych witryn maj za ze, e ich konkurenci pobieraj za pomoc pajkw
dane dostpne publicznie, przez dowoln przegldark, i wykorzystuj je do uzyskania
przewagi na rynku. Mona si z takim stanowiskiem zgadza lub nie, ale pozostaje faktem, e tego typu dziaania byy ju przedmiotem sporw prawnych; za uycie takiego
pajka firma eBay oskarya Bidders Edge (http://pub.bna.com/lw/21200.htm).

Moliwe konsekwencje naduy pajkw


Co si stanie, jeli napiszemy pajka dziaajcego niezgodnie z przyjtymi normami i wypucimy go w wiat? Jest kilka moliwoci. Wiele witryn po prostu zablokuje nasz adres IP.
Dawniej Google blokowao grupy adresw IP, prbujc za pomoc standardowego, automatycznego procesu wyapywa wszystkie przypadki naruszenia TOS. Inn moliw konsekwencj jest wysanie listu z daniem zaprzestania danej dziaalnoci; w zalenoci od
udzielonej przez nas odpowiedzi konflikt moe przybra rne formy, wcznie z procesem sdowym.
Gro wic nam nie tylko straty zwizane z przegranymi procesami cywilnymi, ale w przypadkach szczeglnie drastycznych rwnie grzywny, a nawet kara wizienia, poniewa
niektre dziaania dotyczce publikacji w sieci podlegaj przepisom oglniejszym (np. zasadom prawa autorskiego) lub normom prawa karnego.
Napisanie le wychowanego pajka rzadko powoduje wizyt policji, chyba e jest to
stworzenie wyjtkowo paskudne, na przykad powodujce zalew witryny danymi lub,
mwic inaczej, uniemoliwiajce jej normaln dziaalno (jest to atak typu DoS, denial of
service odmowa dostpu). Jednak, abstrahujc ju od honorariw prawnikw, zmarnowanego czasu i ewentualnych kar finansowych, sam proces moe by dostatecznie
nieprzyjemny, aby unika pisania le zachowujcych si pajkw.

Nadanie za prawem
Aby by na bieco z zagadnieniami, zwizanymi z prawnymi aspektami pobierania informacji, warto uy wyszukiwarki Blawg (http://blawg.detod.com/), ktra indeksuje jedynie
dzienniki sieciowe powicone kwestiom prawnym. Mona zastosowa takie hasa, jak
spider, scraper czy spider lawsuit. Osoby szczeglnie zainteresowane tym tematem powinny wiedzie, e wyniki dziaania Blawg dostpne s te w formie pakietw RSS,
ktre mog by uywane w zwykych systemach zbierajcych i prezentujcych wiadomoci. Mona, korzystajc ze sposobw podanych w tej ksice, uruchomi wasne pakiety
RSS dotyczce wasnoci intelektualnej.
Inne miejsca, w ktrych mona znale aktualne informacje o stanie prawnym, to: Slashdot
(http://slashdot.org/search.pl?topic=123), popularne miejsce spotka rnego rodzaju dziwakw; Electronic Freedom Foundation (http://www.eff.org) fundacja, ktrej strony powicone s prawu cyfrowemu, oraz dziaajca w Harwardzkiej Szkole Prawa organizacja
Berkman Center for Internet & Society (http://cyber.law.harvard.edu/home/), publikujca program badawczy powicony cyberprzestrzeni i zwizanym z ni zagadnieniom.

32

agodne wprowadzenie

SPOSB

Szukanie wzorcw w identyfikatorach


SPOSB

7.

Szukanie wzorcw w identyfikatorach


Jeli okae si, e w interesujcej nas sieciowej bazie danych lub kolekcji zasobw wykorzystywane s
niepowtarzalne numery identyfikacyjne, mona rozszerzy jej funkcje przez poczenie jej z innymi witrynami
i wartociami identyfikujcymi.

Niektre dostpne w sieci kolekcje danych s po prostu duymi zbiorami zestawionymi


w jednym miejscu, zorganizowanymi za pomoc programu bazodanowego lub wyszukiwarki. Kolekcje takie nie wykorzystuj adnych numerw identyfikujcych, ktre uatwiyby ustalenie w nich jakiej struktury. Jednak nie zawsze tak jest.
W miar jak coraz wicej bibliotek udostpnia w sieci swoje zbiory, coraz wicej rekordw
i stron ma swoje niepowtarzalne numery identyfikacyjne.
C z tego? Ot to, e kiedy witryna uywa jakiej metody identyfikujcej swoje informacje, zrozumiaej dla innych witryn, korzystajc z teje metody mona pobiera dane
ze wszystkich tych witryn. Zamy na przykad, e chcemy zwiedzi Stany Zjednoczone,
grajc w golfa, ale obawiamy si zanieczyszczenia rodowiska, wobec czego gra chcemy
jedynie w obszarach czystych ekologicznie. Mona byoby napisa skrypt przeszukujcy
pola golfowe, dostpne pod adresem http://www.golfcourses.com, pobierajcy kody pocztowe znalezionych pl i sprawdzajcy te kody w witrynie http://www.scorecard.org w celu
znalezienia najbardziej (lub najmniej) zanieczyszczonych okolic.
Przykad jest niepowany, ale pokazuje, jak za pomoc niepowtarzalnego identyfikatora
(tutaj kodu pocztowego) mona powiza ze sob dwie sieciowe bazy danych, opisujce
pola golfowe i stopie zanieczyszczenia rnych miejsc.
Oglnie rzecz biorc, dane w sieci mog by zorganizowane trojako:
W formie doranie ustalanych systemw klasyfikacji w ramach kolekcji.
Jako systemy klasyfikacji korzystajce z oglnie przyjtych hierarchii danych
z kolekcji.
Jako systemy klasyfikacji identyfikujce dokumenty z wielu rnych kolekcji.

Doranie ustalane systemy klasyfikacji


Doranie ustalane systemy klasyfikacji albo nie s oparte na oglnie przyjtych hierarchiach, albo do takich hierarchii jedynie luno nawizuj. Jeli dziesi fotografii otrzyma
niepowtarzalne kody zalene od tego, co fotografie te przedstawiaj i zalene od zawartoci w nich niebieskiej skadowej koloru, mamy ju doranie ustalony system klasyfikacji.
Przydatno doranie ustalanych systemw klasyfikacji jest ograniczona; nie mona tych
kodw uywa w innych witrynach. By moe uda si wykry w nich jakie wzorce, ktre
pozwol pobra due iloci danych, ale moe si to te nie uda (innymi sowy pliki oznaczone kodami 10A, 10B, 10C i 10D mog by przydatne, natomiast pliki z kodami CMSH113,
LFFD917 i MDFS214 ju nie).

agodne wprowadzenie

33

7.

SPOSB

7.

Szukanie wzorcw w identyfikatorach

Systemy klasyfikacji oparte na oglnie przyjtych hierarchiach


Najbardziej naturalne przykady systemw klasyfikacji, wykorzystujcych oglnie przyjte
hierarchie, to katalogi biblioteczne oparte na klasyfikacji dziesitnej Deweya, klasyfikacji
Biblioteki Kongresu czy innej oglnie przyjtej.
Systemy takie maj swoje zalety i swoje wady. Zamy, e szukamy ksiki Google Hacks
na Uniwersytecie w Tulsa. Okazuje si, e numer LOC tej ksiki to ZA4251.G66 C3 2003.
Wstawiajc teraz ten numer do Google, otrzymamy okoo 13 odpowiedzi. Zatem jest
dobrze: wyniki pochodz z rnych bibliotek. Okazuje si, e moglimy wykona takie
zapytanie w Google, znajdujc inne biblioteki majce Google Hacks i caemu temu pomysowi nada posta skryptu [Sposb 65.]
Pokazalimy zalet, ale jest i wada: w ten sposb nie wyszukamy wszystkich bibliotek
majcych dan ksik. Inne biblioteki maj inne systemy klasyfikacji, jeli wic potrzebna
jest lista wszystkich bibliotek, nie mona ograniczy si tylko do opisanej metody. Jednak
liczba znalezionych tak bibliotek w wielu wypadkach moe by wystarczajca.

Systemy klasyfikacji identyfikujce dokumenty z wielu rnych kolekcji


Poza systemami klasyfikacji, opartymi na oglnie przyjtych hierarchiach, istniej jeszcze
systemy wykorzystujce numery identyfikacyjne powszechnie uznawane i stosowane.
Przykadami takich systemw mog by:
ISBN (International Standard Book Number, Midzynarodowy Standardowy Numer Ksiki)
Jak nietrudno zgadn, jest to system identyfikacji ksiek. Podobne numery
przypisano czasopismom, muzyce, raportom naukowym i tak dalej. Numery ISBN
pojawiaj si wszdzie tam, gdzie wyliczane s ksiki: od katalogw bibliotecznych
po ksigarni Amazon.com.
NIP (Numer Identyfikacji Podatkowej)
Uywany przez urzdy skarbowe. Numer ten pojawia si na wszelkich zeznaniach
podatkowych, a take na wielu innych dokumentach, takich jak akty notarialne,
zawiadczenia i tak dalej.
Kod pocztowy
Suy Poczcie Polskiej do jednoznacznego identyfikowania obszarw.
Jest to zaledwie kilka przykadw z wielu powszechnie stosowanych systemw numeracji.
Mona oczywicie pj dalej, podajc takie cechy jednoznacznie identyfikujce obiekty,
jak dugo i szeroko geograficzna, numery stosowane w biznesie i administracji czy
systemy kodowania obszarw. Caa sztuka polega na takim dobraniu systemw identyfikujcych, ktre bd wymagay moliwie mao dodatkowych informacji do zadziaania w pajku. "918" to trzycyfrowy acuch dajcy w wyszukiwarce mnstwo wynikw, z ktrych bardzo wiele nie bdzie powizanych z interesujcymi nas danymi.
Moe si zatem okaza, e nie sposb wykluczy w pajku ze znalezionego zbioru
wynikw zbdnych.

34

agodne wprowadzenie

SPOSB

Szukanie wzorcw w identyfikatorach

Z drugiej strony dugie numery identyfikacyjne, takie jak katalog numerw LOC czy ISBN,
bd daway znacznie mniej lub wcale nie bd daway bdnych wynikw wyszukiwania. Im duszy i bardziej skomplikowany jest numer identyfikacyjny, tym lepiej nadaje
si do automatycznego wyszukiwania i pobierania danych.

Wybrane due zbiory z identyfikatorami


W sieci istnieje sporo miejsc wykorzystujcych niepowtarzalne numery identyfikujce
rozumiane przez wiele witryn. Oto kilka przykadowych:
Amazon.com (http://www.amazon.com), Abebooks (http://www.abebooks.com)
Witryny te uywaj numerw ISBN. Poczenie danych z obu witryn pozwoli znale
najtasze ksiki.
The International Standard Serial Number Register (http://www.issn.org)
Chcc skorzysta z tej witryny, trzeba si w niej zarejestrowa, ale dostpne s
darmowe konta prbne. Numery ISSN nadawane s zarwno czasopismom
internetowym, jak i papierowym.
Poczta USA (http://www.usps.com)
W tej witrynie mona wyszukiwa zarwno standardowe, jak i dziewiciocyfrowe
kody pocztowe USA; rozszerzone, dziewiciocyfrowe kody pozwalaj dokadniej
okrela obszar oraz uatwiaj odrzucanie niepodanych wynikw szukania danych
przez pajka.
GuideStar, baza danych dla organizacji typu non-profit oferuje stron umoliwiajc wyszukiwanie danych wedug numerw EIN (numery pracownicze w USA; http://www.guidestar.
org/search/). Take wiele innych amerykaskich biznesowych baz danych umoliwia
wyszukiwanie wedug EIN.

agodne wprowadzenie

35

7.

You might also like