JavaRush /Java Blogu /Random-AZ /jsoup kitabxanası ilə html təhlili
Сергей
Səviyyə
Москва

jsoup kitabxanası ilə html təhlili

Qrupda dərc edilmişdir
Ona görə də saytdan konkret məlumat almaq istəyirik. Bunu addım-addım necə edəcəyinə baxaq. jsoup kitabxanası ilə html-nin təhlili - 1Əvvəlcə əldə etməliyik Document. Bu, html səhifəmizin təsviridir. Jsoup-un saytı bir sayta çevirməyin bir neçə yolu var Document. Serverə qoşulun
Document document = Jsoup.connect("https://hh.ru/").get();
Jsoup özü sayta qoşulur. Bu üsul ən sadədir, lakin yalnız sınaq üçün uyğundur. Daha rahat və çevik http müştəriləri var. Nəzərə alın ki, hansı http müştərisindən istifadə etməyinizdən asılı olmayaraq sorğuya User-Agentməsələn, dəyəri olan başlıq əlavə edin Chrome/81.0.4044.138. Bu başlıqdan istifadə edərək server hansı cihazdan qoşulduğunuzu müəyyən edir. Bu başlıq olmadan server sizi bot hesab edir və sizə qadağa qoya bilər. Fayldan ;
File file = new File("hh-test.html");
Document document = Jsoup.parse(file, "UTF-8", "hh.ru");
Bu obyekti əldə etməyin əsas yoludur Document. Son arqument "hh.ru"əsas URI-dir. Bu, saytda mövcud olan nisbi olanlardan mütləq bağlantılar yaratmaq üçün lazımdır. Xəttdən
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");
Sonra, sadələşdirilmiş saytı təmsil edən bu html-də kitabxananı nümayiş etdirəcəyəm. Teq əldə etmək Analiz zamanı əsas vəzifə istədiyiniz teqi əldə etməkdir. Bunu metoddan istifadə edərək edəcəyik select. Qeyd edək ki, o, həmişə etiketlərin siyahısını qaytarır. Heç bir teq tapılmazsa, siyahı boş olacaq. Metod arqumenti kimi teqlərin axtarıldığı CSS seçicisini keçməlisiniz. Seçicilər üzərində daha ətraflı dayanacağam, çünki bütün iş düzgün seçicinin yazılmasından keçir. Adətən biz onu elə tərtib etməliyik ki, o, tək teq qaytarsın.
Elements h1 = document.select("h1");
System.out.println(h1);
Teq teqləri alın h1 Çıxış:

<h1>Работа найдется для каждого</h1>
Elements titleElem = document.select("head > title");
Etiketlər alın title. İşarə teq daxilində yerləşdirilmiş teqləri >seçirtitlehead
Elements divs = document.select("body > div");
divİçəri daxil edilmiş etiketləri əldə edinbody
Elements firstDiv = document.select("body > div:nth-child(1)");
divİçərisində yerləşdirilmiş ilk etiketi əldə edin body. Teqləri seriya nömrəsi ilə əldə etmək pis yoldur, çünki onun saytdakı mövqeyi dəyişə bilər. Mütləq parametrlərdən istifadə edərək etiketi müəyyən etmək daha yaxşıdır. Bu parametrlər atributlardır classid
Elements contentElem = document.select("body > div.content");
divİçəridə yerləşdirilmiş "content" sinfi ilə etiket əldə edinbody
Elements idElem = document.select("#123");
"123" id ilə etiketlər əldə edin
Elements divHeader = document.select("body > div.header.main :not(h1)");
div"header" və "main" sinifli teqləri içəridə yerləşdirilmiş body, lakin teqsiz əldə edin h1 . Nəticə:

<div>
 Поиск вакансий
</div>
Elementlərin Metodları Siyahı aldıqdan sonra Elementsondan məlumatları çıxara bilərik. Nəzərinizə çatdırım ki, adətən seçici bir teq axtarır, yəni. Elementsölçü 1 olmalıdır .
elements.size();
tapılan etiketlərin sayı
elements.get(0);
tapılanlar siyahısından ilk etiketi əldə edin
elements.text();
etiketə daxil edilmiş mətn
elements.attr("href");
"href" atribut dəyəri
elements.outerHtml();
Teqin simli təsviri Element seçicisini tez bir zamanda əldə etmək lazımdırsa, brauzerdə tərtibatçı panelini (f12) açın, elementə sağ klikləyin, “koda baxın”, etiketə sağ vurun, sonra “Kopyala” “ Kopya seçicisi”. Belə bir seçici optimal olmayacaq, lakin sürətli nəticələr üçün olduqca uyğundur. Nəticə Bu, Jsoup kitabxanası ilə işləməyin əsaslarıdır. Ancaq bu saytları təhlil etmək üçün kifayətdir. Etibarlı işləmək üçün sizə lazım olan tək şey real saytlarda selektor yazmaq məşqidir. Ps Bu kitabxana 38-ci səviyyədə böyük bir problemi həll etmək üçün istifadə olunur jsoup kitabxanası ilə html-nin təhlili - 1jsoup kitabxanası ilə html-nin təhlili - 3
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION