Milan Čečrdle
27.10.2011

Získávání dat z HTML stránek



Na jednom projektu jsme potřebovali získávat informace z HTML stránek a využili jsme knihovnu jSoup. Její jednoduché použití si ukážeme na příkladu získání jednotlivých popisů volných pozic ze stránek Aspectworks.

Pomocí metody connect a get() získáme načtenou stránkou

Document doc = Jsoup.connect("/volne-pozice").get(); 

Stránka obsahuje „ul“ element s class = „subPages“, ve které jsou pod elementy „li“ uloženy jednotlivé pozice. Pomocí metody select nad daným dokumentem najdeme odpovídající pozice a vypíšeme pozici a URL kde získáme detail pozice

Elements positions=doc.select("ul.subPages li a");
for (Element elem:positions) {
  System.out.printf("Pozice=%s,URL=%sn",elem.text(), elem.absUrl("href"));
}

K vyhledání cílových informací lze použít syntaxy jquery případně CSS selektorů, detailní popis najdete zde.

Užitečné jsou dále metody text(), která vrátí vnitřní obsah elementu a dále absUrl, která vrátí absolutní URL, tak abychom jej mohli přímo použít na další volání. Samozřejmostí je také automické vyplnění parametru stránky a odeslání např. metodou post

Jsoup.connect(URL).data("název parametru","hodnota").post();

Knihovna funguje velmi intuitivně a její použití bylo bezproblémové. Jediný nedostatek je zatím nemožnost nastavit proxy. Výhodou knihovny je také to, že má minimun závislostí a lze ji tedy použít např. při vývoji Android aplikací.

Na jednom projektu jsme potřebovali získávat informace z HTML stránek a využili jsme knihovnu jSoup. Její jednoduché použití si ukážeme na příkladu získání jednotlivých popisů volných pozic ze stránek Aspectworks. Pomocí metody connect a get() získáme načtenou stránkou

 Document doc = Jsoup.connect("/volne-pozice").get(); 

Stránka obsahuje „ul“ element s class = „subPages“, ve které jsou pod elementy „li“ uloženy jednotlivé pozice. Pomocí metody select nad daným dokumentem najdeme odpovídající pozice a vypíšeme pozici a URL kde získáme detail pozice Elements positions=doc.select("ul.subPages li a"); for (Element elem:positions) { System.out.printf("Pozice=%s,URL=%sn",elem.text(), elem.absUrl("href")); } K vyhledání cílových informací lze použít syntaxy jquery případně CSS selektorů,

detailní popis najdete zde. Užitečné jsou dále metody text(), která vrátí vnitřní obsah elementu a dále absUrl, která vrátí absolutní URL, tak abychom jej mohli přímo použít na další volání. Samozřejmostí je také automické vyplnění parametru stránky a odeslání např. metodou post Jsoup.connect(URL).data("název parametru","hodnota").post(); Knihovna funguje velmi intuitivně a její použití bylo bezproblémové. Jediný nedostatek je zatím nemožnost nastavit proxy. Výhodou knihovny je také to, že má minimun závislostí a lze ji tedy použít např. při vývoji Android aplikací.

Vaše emailová adresa nebude zveřejněna

Komentáře

Děkujeme za váš komentář
Další