본문 바로가기

프로그래밍/Java

Java 로그인 필수 사이트 HTML 파싱 :: Jsoup

반응형

자바(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인 텍스트 값 가져오기

 

기본 문법이 필요하다면 아래 사이트 참고 바랍니다.

 

Cookbook: jsoup Java HTML parser

 

jsoup.org

 

감사합니다.

반응형

'프로그래밍 > Java' 카테고리의 다른 글

Java 8 스트림  (0) 2021.05.03
Mac Java 자바 설치 방법  (0) 2021.04.19