JavaRush /Java Blog /Random-KO /jsoup 라이브러리로 html 구문 분석
Сергей
레벨 40
Москва

jsoup 라이브러리로 html 구문 분석

Random-KO 그룹에 게시되었습니다
그래서 우리는 사이트에서 구체적인 정보를 얻고 싶습니다. 이 작업을 단계별로 수행하는 방법을 살펴보겠습니다. jsoup 라이브러리로 HTML 구문 분석 - 1먼저 우리는 Document. 이것은 우리의 HTML 페이지를 표현한 것입니다. Jsoup에는 사이트를 Document. 서버에 연결
Document document = Jsoup.connect("https://hh.ru/").get();
Jsoup 자체가 사이트에 연결됩니다. 이 방법은 가장 간단하지만 테스트에만 적합합니다. 더 편리하고 유연한 http 클라이언트가 있습니다. User-Agent또한 어떤 http 클라이언트를 사용하든 관계 없이 Chrome/81.0.4044.138. 이 헤더를 사용하여 서버는 사용자가 어떤 장치에서 연결했는지 확인합니다. 이 헤더가 없으면 서버는 귀하를 봇으로 간주하여 차단할 수 있습니다. 파일에서 ;
File file = new File("hh-test.html");
Document document = Jsoup.parse(file, "UTF-8", "hh.ru");
이것이 객체를 얻는 주요 방법입니다 Document. 마지막 인수 "hh.ru"는 기본 URI입니다. 이는 사이트에 있는 상대 링크에서 절대 링크를 만드는 데 필요합니다. 라인에서
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");
다음으로 단순화된 사이트를 나타내는 이 HTML의 라이브러리를 보여 드리겠습니다. 태그 얻기 구문 분석 시 주요 작업은 원하는 태그를 얻는 것입니다. 우리는 메소드를 사용하여 이를 수행할 것입니다 select. 항상 태그 목록을 반환합니다. 태그가 발견되지 않으면 목록은 비어 있습니다. 태그를 검색하는 CSS 선택기를 메소드 인수로 전달해야 합니다. 모든 작업은 올바른 선택기를 작성하는 데 달려 있기 때문에 선택기에 대해 더 자세히 설명하겠습니다. 일반적으로 단일 태그를 반환하도록 구성해야 합니다.
Elements h1 = document.select("h1");
System.out.println(h1);
태그 가져오기 태그 h1 출력:

<h1>Работа найдется для каждого</h1>
Elements titleElem = document.select("head > title");
태그를 가져옵니다 title. 기호는 태그 내에 중첩된 >태그를 선택합니다.titlehead
Elements divs = document.select("body > div");
태그를 div중첩하여 가져오기body
Elements firstDiv = document.select("body > div:nth-child(1)");
div에 중첩된 첫 번째 태그를 가져옵니다 body. 일련번호로 태그를 검색하는 것은 사이트에서의 태그 위치가 변경될 수 있으므로 좋지 않은 방법입니다. 절대 매개변수를 사용하여 태그를 정의하는 것이 좋습니다. 이러한 매개변수는 속성 classid
Elements contentElem = document.select("body > div.content");
div'content' 클래스가 중첩된 태그를 가져옵니다.body
Elements idElem = document.select("#123");
ID가 "123"인 태그 가져오기
Elements divHeader = document.select("body > div.header.main :not(h1)");
에 중첩되어 있지만 태그 없이 div"header" 및 "main" 클래스가 있는 태그를 가져옵니다 . 출력: bodyh1

<div>
 Поиск вакансий
</div>
요소 방법 목록을 받으면 Elements목록에서 데이터를 추출할 수 있습니다. 일반적으로 선택기는 하나의 태그를 검색한다는 점을 상기시켜 드리겠습니다. Elements크기가 1이어야 합니다 .
elements.size();
발견된 태그 수
elements.get(0);
발견된 태그 목록에서 첫 번째 태그를 가져옵니다.
elements.text();
태그에 삽입된 텍스트
elements.attr("href");
"href" 속성 값
elements.outerHtml();
태그의 문자열 표현 요소 선택기를 빠르게 가져와야 하는 경우 브라우저에서 개발자 패널(f12)을 열고 요소를 마우스 오른쪽 버튼으로 클릭한 다음 "코드 보기", 태그를 마우스 오른쪽 버튼으로 클릭한 다음 "복사" 복사 선택기”. 이러한 선택기는 최적이 아니지만 빠른 결과를 얻는 데 매우 적합합니다. 결론 이것이 Jsoup 라이브러리 작업의 기본입니다. 그러나 이것은 사이트를 구문 분석하기에 충분합니다. 자신 있게 작업하려면 실제 사이트에서 선택기 작성을 연습하는 것뿐입니다. Ps 이 라이브러리는 레벨 38의 큰 문제를 해결하는 데 사용됩니다. jsoup 라이브러리로 HTML 구문 분석 - 1jsoup 라이브러리로 HTML 구문 분석 - 3
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION