JavaRush /Java Blog /Random-TL /Pag-parse ng html gamit ang jsoup library
Сергей
Antas
Москва

Pag-parse ng html gamit ang jsoup library

Nai-publish sa grupo
Kaya gusto naming makakuha ng partikular na impormasyon mula sa site. Tingnan natin kung paano gawin ang hakbang-hakbang na ito. Pag-parse ng html gamit ang jsoup library - 1Una kailangan nating makuha ang Document. Ito ay isang representasyon ng aming html page. Ang Jsoup ay may ilang mga paraan upang gawing isang site ang isang Document. Kumonekta sa server
Document document = Jsoup.connect("https://hh.ru/").get();
Ang Jsoup mismo ay kumokonekta sa site. Ang pamamaraang ito ay ang pinakasimpleng, ngunit ito ay angkop lamang para sa pagsubok. Mayroong mas maginhawa at nababaluktot na mga kliyente ng http. Tandaan din, kahit anong http client ang gamitin mo, magdagdag ng header sa kahilingan User-Agentna may halaga tulad ng Chrome/81.0.4044.138. Gamit ang header na ito, tinutukoy ng server kung saang device ka nakakonekta. Kung wala ang header na ito, itinuring ka ng server na isang bot at maaaring ipagbawal ka. Mula sa file ;
File file = new File("hh-test.html");
Document document = Jsoup.parse(file, "UTF-8", "hh.ru");
Ito ang pangunahing paraan upang makakuha ng isang bagay Document. Ang huling argumento "hh.ru"ay ang base URI. Ito ay kinakailangan upang lumikha ng ganap na mga link mula sa mga kamag-anak na naroroon sa site. Mula sa linya
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");
Susunod, ipapakita ko ang library sa html na ito, na kumakatawan sa isang pinasimpleng site. Pagkuha ng tag Ang pangunahing gawain kapag nag-parse ay makuha ang gustong tag. Gagawin namin ito gamit ang pamamaraan select. Tandaan na palagi itong nagbabalik ng listahan ng mga tag. Kung walang mahanap na mga tag, walang laman ang listahan. Kailangan mong magpasa ng isang CSS selector kung saan hahanapin ang mga tag bilang argumento ng pamamaraan. Tatalakayin ko ang mga tagapili nang mas detalyado, dahil ang lahat ng gawain ay bumababa sa pagsulat ng tamang tagapili. Karaniwang kailangan nating buuin ito upang maibalik nito ang isang tag.
Elements h1 = document.select("h1");
System.out.println(h1);
Kunin ang mga tag na h1 Output:

<h1>Работа найдется для каждого</h1>
Elements titleElem = document.select("head > title");
Kumuha ng mga tag title. >Pinipili ng sign ang mga tag titlena naka-nest sa loob ng isang taghead
Elements divs = document.select("body > div");
Kunin ang mga tag divna naka-nestbody
Elements firstDiv = document.select("body > div:nth-child(1)");
Kunin ang unang tag divna naka-nest sa body. Ang pagkuha ng tag sa pamamagitan ng serial number ay isang masamang paraan, dahil ang posisyon nito sa site ay maaaring magbago. Mas mainam na tukuyin ang tag gamit ang mga ganap na parameter. Ang mga parameter na ito ay mga katangian classatid
Elements contentElem = document.select("body > div.content");
Kumuha ng tag divna may "content" class, na naka-nestbody
Elements idElem = document.select("#123");
Kumuha ng mga tag na may id na "123"
Elements divHeader = document.select("body > div.header.main :not(h1)");
Kumuha ng mga tag divna may class na "header" at "main", na naka-nest sa body, ngunit walang mga tag h1 . Output:

<div>
 Поиск вакансий
</div>
Mga Paraan ng Elemento Kapag nakatanggap na kami ng isang listahan, Elementsmaaari kaming kumuha ng data mula dito. Hayaan akong ipaalala sa iyo na kadalasan ang tagapili ay naghahanap ng isang tag, i.e. dapat Elementssize 1.
elements.size();
bilang ng mga tag na natagpuan
elements.get(0);
makuha ang unang tag mula sa listahan ng mga nahanap
elements.text();
text na naka-embed sa tag
elements.attr("href");
"href" na halaga ng katangian
elements.outerHtml();
representasyon ng string ng isang tag Kung kailangan mong mabilis na makakuha ng tagapili ng elemento, buksan ang panel ng developer (f12) sa browser, i-right-click ang elemento, "tingnan ang code", i-right-click ang tag, pagkatapos ay "Kopyahin" " Kopyahin ang tagapili". Ang gayong tagapili ay hindi magiging pinakamainam, ngunit ito ay lubos na angkop para sa mabilis na mga resulta. Konklusyon Ito ang mga pangunahing kaalaman sa pagtatrabaho sa Jsoup library. Ngunit ito ay sapat na upang mai-parse ang mga site. Upang gumana nang may kumpiyansa, ang kailangan mo lang ay magsanay sa pagsusulat ng mga tagapili sa mga totoong site. Ps Ang library na ito ay ginagamit upang malutas ang isang malaking problema sa antas 38 Pag-parse ng html gamit ang jsoup library - 1Pag-parse ng html gamit ang jsoup library - 3
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION