. Struktura dále
pokračuje, ale my už ji zkoumat nebudeme. Důležité je pochopit, že každý prvek – jméno, název
stranz, národnost – má v rámci dokumentu definovatelnou cestu.
Klikněte na jméno poslankyně Claudette pravým tlačítkem znovu a zvolte Scrape similar...
Náš Scraper právě identifikoval strukturu dokumentu (i bez našeho výrazného snažení), našel si
v HTML tazích cestu ke jménu poslankyně a také podobné cesty ke jménům dalších poslanců. V okně
vlevo vidíte příkaz XPath, pod ním pak „podpříkazy“, které určují jaké další informace se z daného
umístění do sloupců tabulky načítají – k tomu se ještě dostaneme.
V okně napravo pak vidíte výsledek scrapování – tabulka se 766 jmény a URL odkazy na podstránky
pro jednotlivé poslance. Z údajů, které reálně potřebujeme, ale nyní máme jen jméno.
Scraper identifikoval jako XPath selector „adresu“ //div[2]/div[1]/div/div/ul/li/a
My ale z našeho zkoumání struktury víme, že tady se nachází pouze jméno a odkaz na podstránku –
další potřebné údaje se nacházejí jinde. Osekáme tedy adresu až na ten tag, který je společným
nadřazeným všem tagům, jež obsahují námi chtěné informace. To zní trochu chaoticky, takže raději
hned prakticky.
Zkuste z adresy vymazat poslední /a – zůstane tedy //div[2]/div[1]/div/div/ul/li a klikněte na
tlačítko Scrape. To není ono, stále nejsme dost vysoko. Umažte tedy ještě /li – zůstane
//div[2]/div[1]/div/div/ul a klikněte na tlačítko Scrape. To vypadá lépe. Scraper „projel“ všechny
//div[2]/div[1]/div/div/ul v dokumentu a vytáhl z nich informace – v tabulce nyní vidíme všechny
údaje, které potřebujeme: je tam jméno, je tam strana, spolek i národnost. Má to jednu chybu:
všechno je to v jednom jediném sloupci.
To samé si ukážeme ještě v HTML. Scraper nyní tedy u každého poslance dojede až k tagu ul
(červeně) a vytáhne z něj všechny informace (tedy vše, co je uvnitř žlutého rámečku). Pomocí nabídky
Columns v pravém sloupci nyní Scraperu upřesníme, jaké má z //div[2]/div[1]/div/div/ul tahat další
„podtagy“ a do jakých sloupců je má zařadit.
Smažme tedy ty, co tam nyní jsou, a to pomocí malého červeného mínuska. V kódu vidíme, že v rámci
tagu
je jméno poslance umístěno v prvním podtagu - . Vše co teď uděláme je, že do pole
XPath napíšeme li a do pole Name sloupec pojmenujeme jako Jméno. Klikneme na tlačítko Scrape.
Máme v tabulce samostatný sloupeček pro jméno. Zpátky ke kódu. V něm vidíme, že poslancova
domovská strana se nachází trochu hlouběji ve struktuře, v třetím tagu
- a dále v podtagu .
Pomocí zeleného pluska tedy přidáme další sloupec. Nazveme ho Strana a jako XPath cestu zadáme
li[3]/span a klikneme na tlačítko Scrape. Scraper nyní projede všechny poslance a u každého vytahá
informace z cesty, kterou jsme mu právě zadali – tedy ze třetího [3] tagu
- a podtagu .
Pokrok! Máme tabulku se jmény všech poslanců EP a jejich stranickou příslušností. Co nám zbývá?
Národnost. Zpátky ke kódu.
Údaj o národnosti se nachází ve třetím tagu
- pod tagem
. Logicky tedy vyplníme li[3] a
sloupec nazveme Národnost. Klikneme na tlačítko Scrape a…
…a něco není v pořádku. XPath poslušně vytáhl všechny informace z druhého tagu - pod tagem
, ale protože jeho součástí je i tag s názvem strany, jsou teď oba tyto údaje v jednom
sloupci. Tady přichází na řadu vyšší XPath dívčí. Musíme mu nějakým způsobem říct, aby z třetího
tagu - vytáhl jen a pouze údaj o národnosti a to, co je tam dále v podtagu , nechal na
pokoji. Scraperu to řekneme jazykem, kterému rozumí – tedy XPath: li[3]/node()[not(self::span)]
Tento příkaz zajistí, že si do sloupce Národnost opravdu vytáhne jen národnosti, ale všechny další
podtagy nechá ležet bez povšimnutí. Zkusme XPath příkaz ve sloupci Národnost upravit na
tento pokročilejší a kliknout na tlačítko Scrape.
A jsme doma! V pravém sloupci je tabulka všech poslanců EP se jmény, národností a stranickou
příslušností. Jistě jste si všimli, že na stránce EP je kromě těchto údajů uvedena ještě politická skupina
uvnitř parlamentu, kterou je daný poslanec či daná poslankyně členem či členkou. Zkuste si sami ve
Scraperu přidat další sloupec a do něj si nechat vytáhnout název spolku. Povedlo se?
Pak už stačí jen kliknout na Export to Google Docs a tabulka je na světě. Gratuluji, právě jste
poscrapovali (nebo podle Honzy „olízali“) web Evropského parlamentu!