JavaRush /Blog Jawa /Random-JV /Parsing html karo perpustakaan jsoup
Сергей
tingkat
Москва

Parsing html karo perpustakaan jsoup

Diterbitake ing grup
Dadi, kita pengin njaluk informasi tartamtu saka situs kasebut. Ayo ndeleng carane nindakake langkah iki. Parsing html nganggo perpustakaan jsoup - 1Pisanan kita kudu njaluk Document. Iki minangka perwakilan saka kaca html kita. Jsoup duwe sawetara cara kanggo ngowahi situs dadi Document. Nyambung menyang server
Document document = Jsoup.connect("https://hh.ru/").get();
Jsoup dhewe nyambung menyang situs kasebut. Cara iki paling gampang, nanging mung cocok kanggo tes. Ana klien http sing luwih trep lan fleksibel. Uga elinga, apa wae klien http sing sampeyan gunakake, tambahake header menyang panyuwunan User-Agentkanthi nilai kayata Chrome/81.0.4044.138. Nggunakake header iki, server nemtokake piranti sing sampeyan sambungake. Tanpa header iki, server nganggep sampeyan bot lan bisa nglarang sampeyan. Saka file ;
File file = new File("hh-test.html");
Document document = Jsoup.parse(file, "UTF-8", "hh.ru");
Iki minangka cara utama kanggo entuk obyek Document. Argumentasi pungkasan "hh.ru"yaiku URI basis. Iki perlu kanggo nggawe pranala absolut saka relatif sing ana ing situs. Saka baris
String html =
                "<html>                                                                       " +
                "    <head>                                                                   " +
                "        <title href=\"hh.ru/vacancy?home\">                                  " +
                "            Работа в Москве, поиск персонала и публикация вакансий - hh.ru   " +
                "        </title>                                                             " +
                "    </head>                                                                  " +
                "    <body>                                                                   " +
                "        <div class=\"header main\">                                          " +
                "            <h1>Работа найдется для каждого</h1>                             " +
                "            <div>Поиск вакансий</div>                                        " +
                "        </div>                                                               " +
                "        <div class=\"content\">                                              " +
                "            <div>Вакансии дня</div>                                          " +
                "            <div id=\"123\">Компании дня</div>                               " +
                "            <div>Работа из дома</div>                                        " +
                "        </div>                                                               " +
                "    </body>                                                                  " +
                "</html>                                                                      ";

        Document document = Jsoup.parse(html, "hh.ru");
Sabanjure, aku bakal nduduhake perpustakaan ing html iki, sing makili situs sing disederhanakake. Njupuk tag Tugas utama nalika parsing kanggo njaluk tag sing dikarepake. Kita bakal nindakake iki kanthi nggunakake metode kasebut select. Elinga yen tansah ngasilake dhaptar tag. Yen ora ana tag sing ditemokake, dhaptar bakal kosong. Sampeyan kudu ngliwati pamilih CSS kanthi tag sing digoleki minangka argumen metode. Aku bakal manggon ing pamilih ing liyane rinci, amarga kabeh karya teka mudhun kanggo nulis pamilih bener. Biasane kita kudu nyipta supaya bisa ngasilake tag siji.
Elements h1 = document.select("h1");
System.out.println(h1);
Entuk tag tag h1 Output:

<h1>Работа найдется для каждого</h1>
Elements titleElem = document.select("head > title");
Entuk tag title. Tandha >milih tag titlesing dipasang ing taghead
Elements divs = document.select("body > div");
Entuk tag divsing dipasang ingbody
Elements firstDiv = document.select("body > div:nth-child(1)");
Njaluk tag pisanan divnested ing body. Njupuk tag kanthi nomer seri minangka cara sing ora becik, amarga posisi ing situs kasebut bisa diganti. Iku luwih apik kanggo nemtokake tag nggunakake paramèter absolut. Paramèter kasebut minangka atribut classlanid
Elements contentElem = document.select("body > div.content");
Njaluk tag divkaro kelas "isi", nested inbody
Elements idElem = document.select("#123");
Entuk tag kanthi id "123"
Elements divHeader = document.select("body > div.header.main :not(h1)");
Njaluk tag divkaro kelas "header" lan "utama", nested in body, nanging tanpa tags h1 . Output:

<div>
 Поиск вакансий
</div>
Metode Elemen Sawise nampa dhaptar, Elementskita bisa ngekstrak data kasebut. Ayo kula ngelingake sampeyan sing biasane pamilih nggoleki siji tag, i.e. kudu Elementssize 1.
elements.size();
jumlah tag sing ditemokake
elements.get(0);
entuk tag pisanan saka dhaptar sing ditemokake
elements.text();
teks ditempelake ing tag
elements.attr("href");
nilai atribut "href".
elements.outerHtml();
Perwakilan senar saka tag Yen sampeyan kudu njaluk pamilih unsur kanthi cepet, bukak panel pangembang (f12) ing browser, klik-tengen ing unsur kasebut, "deleng kode", klik-tengen ing tag kasebut, banjur "Salin" " Copy selector”. Pamilih kasebut ora bakal optimal, nanging cukup cocog kanggo asil sing cepet. Kesimpulan Iki minangka dhasar nggarap perpustakaan Jsoup. Nanging iki cukup kanggo ngurai situs. Kanggo makarya kanthi yakin, sampeyan mung butuh latihan nulis pamilih ing situs nyata. Ps Pustaka iki digunakake kanggo ngatasi masalah gedhe ing level 38 Parsing html nganggo perpustakaan jsoup - 1Parsing html nganggo perpustakaan jsoup - 3
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION