JavaRush /Blog Jawa /Random-JV /Parsing HTML gampang karo jsoup
Stanislav
tingkat
Москва

Parsing HTML gampang karo jsoup

Diterbitake ing grup
Mbok menawa ing sawijining dina sampeyan kudu entuk informasi saka situs web utawa dokumen HTML ing aplikasi sampeyan, lan aku ora bakal ngomong yen nggunakake perpustakaan jsoup bakal nyederhanakake tugas sampeyan. Miturut wiki , jsoup minangka perpustakaan Java open source sing dirancang kanggo ngurai, ngekstrak lan manipulasi data sing disimpen ing dokumen HTML.

wiwitan cepet

Perpustakaan bisa diundhuh minangka file jar lan diselehake ing project, utawa disambungake nggunakake Maven / Gradle. Aku bakal ninggalake link menyang situs resmi ing mburi artikel: ana sampeyan bisa nemokake versi saiki perpustakaan. Ing conto kita bakal nggunakake sambungan liwat Maven. Ayo nambah ketergantungan:
<​dependency​>
  <​groupId>org.jsoup</groupId>
  <​artifactId>jsoup</artifactId>
  <​version>1.11.3</version>
</dependency>

Panggunaan

Kaping pisanan, sampeyan kudu entuk conto kelas Documentsaka org.jsoup.nodes.Document sing nuduhake sumber kanggo parsing. Bisa uga file lokal utawa link. Contone, ing artikel iki, kita bakal nggunakake situs web yandex.ru lan nyoba entuk feed warta saiki:
Document doc = Jsoup.connect("https://yandex.ru/")
                .userAgent("Chrome/4.0.249.0 Safari/532.5")
                .referrer("http://www.google.com")
                .get();
User Agentminangka pengenal sing disampekake menyang situs sing dibukak. Ing pirang-pirang situs, iku minangka kritéria paling penting kanggo panyaring antispam. Referrerngemot URL sumber panyuwunan. Cara get()mbalang IOException ditangani, supaya kita bisa Lebokake kabeh ing try/catchpemblokiran, utawa mung uncalan luwih karo throws. Saiki kita wis nampa kode sumber kanggo kaca iki. Yen perlu, perpustakaan jsoup dhewe bisa mulihake unsur sing rusak. Saiki sing kudu ditindakake yaiku mbatesi telusuran menyang blok sing kapisah. Cara kasebut select()nduweni pilihan akeh panggunaan: ngidini sampeyan nggoleki unsur kanthi tag, atribut, kelas lan paramèter liyane. Meh kabeh browser modern ndhukung kemampuan kanggo cepet nggoleki kode sumber saka unsur sing dipilih. Kanthi manipulasi prasaja, kita nemokake kode sumber unsur sing kita butuhake lan entuk divblok karo kelas sing ditemtokake, sing bakal digunakake kanggo sampling. Parsing HTML sing gampang nggunakake jsoup - 1Ayo nggunakake kelas Elementssaka org.jsoup.select.Elements kanggo milih kabeh unsur saka blok sing dipilih.
Elements listNews = doc.select("div#tabnews_newsc.content-tabs__items.content-tabs__items_active_true");
Saiki kita duwe kaya iki: Parsing HTML sing gampang nggunakake jsoup - 2Saiki sing kudu ditindakake yaiku nggunakake daur ulang cilik kanggo ngulang kabeh unsur:
for (Element element : listNews.select("a"))
            System.out.println(element.text());
Cara kasebut text()ngidini sampeyan ngilangi kode markup lan mung ninggalake kombinasi teks kanggo kabeh unsur sing mlebu. Asil saka eksekusi bakal kaya ing ngisor iki: Parsing HTML sing gampang nggunakake jsoup - 3Iku gampang kanggo sok dong mirsani sing nomer nyata saka larik ditampa ora cocog karo tampilan nyata ing kaca. Iki ngendi pitfalls dumunung. Yen sampeyan ndeleng kode sumber markup, sampeyan bakal weruh manawa warta paling anyar diganti kanthi animasi ing interval wektu tartamtu. Sawetara "watu" iki ditanggulangi kanthi sampling tambahan, lan mesthi, tes. Bisa uga ana limang unsur pisanan ngemot informasi sing dibutuhake, lan unsur kaping enem mung ngemot baris kosong sing ditulis. Iku uga mengkono sing pamblokiran ora bakal duwe pengenal sembarang, banjur bisa langsung nunjuk nggunakake cara get(int index)kanggo nomer posisi unsur ing pitakonan.
System.out.println(listNews.select("a").get(2).text());

Kesimpulan

Conto iki mung nuduhake bagean cilik saka apa sing bisa ditindakake jsoup. Ana uga kasunyatan manawa situs asring dianyari, ngganti struktur kode markup, supaya nalika nggarap scraping, sampeyan kudu siap adaptasi karo owah-owahan. Sampeyan bisa entuk informasi luwih lengkap lan versi saiki ing situs web resmi jsoup.org ; sampeyan bisa maca liyane babagan kelas lan metode ing o7planning.org . Aku bakal ninggalake link menyang githubku , nalika nulis ana sawetara bot Telegram sing nggunakake Jsoup kanggo nampa lan nampilake informasi.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION