반응형
자바(Java)에서 HTML을 쉽게 파싱(Parsing)할 수 있는 오픈소스 라이브러리, Jsoup 복붙노트입니다.
Jsoup 설치
Maven 설치
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
Gradle 설치
implementation 'org.jsoup:jsoup:1.13.1'
Jsoup 사용법
웹사이트 연결
Jsoup.connect("https://www.test.co.kr").get();
로그인 페이지에서 쿠키 가져오기
Connection.Response loginPageResponse = Jsoup.connect("https://www.test.co.kr/login/login.htm")
.timeout(3000)
.header("Origin", "http://test.co.kr")
.header("Referer", "https://www.test.co.kr/login/login.htm")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
.header("Content-Type", "application/x-www-form-urlencoded")
.header("Accept-Encoding", "gzip, deflate, br")
.header("Accept-Language", "ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4")
.method(Connection.Method.GET)
.execute();
Map<String, String> cookies = loginPageResponse.getCookies();
로그인하기
data에 id와 password를 data 메소드로 넘겨줍니다. 앞서 로그인 페이지에서 가져온 쿠키 값을 cookies 메소드를 통해 세팅해줍니다.
Connection.Response response = Jsoup.connect(url)
.data("member_id",id, "member_password", password)
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36")
.cookie("PHPSESSID", loginPageReponse.cookies().get("PHPSESSID"))
.method(Connection.Method.POST)
.timeout(5000)
.execute();
로그인 후 접근 가능한 페이지 접속
로그인 후 얻은 쿠키값을 cookies 메소드를 통해 세팅해줍니다.
Document doc = Jsoup.connect("http://www.test.co.kr/product/product_detail.htm?ProductNo=test").cookies(resonse.cookies()).get();
DOM Select
select 메소드를 통해서 원하는 값을 가져 옵니다.
doc.select("span.txt").select(".co_red").text() // 클래스가 txt인 span태그의 클래스 이름이 co_red인 텍스트 값 가져오기
기본 문법이 필요하다면 아래 사이트 참고 바랍니다.
감사합니다.
반응형
'프로그래밍 > Java' 카테고리의 다른 글
Java 8 스트림 (0) | 2021.05.03 |
---|---|
Mac Java 자바 설치 방법 (0) | 2021.04.19 |