- 하드 윈도우 복사
- TempData
- 404에러페이지
- php 캐쉬제거
- jquery 바코드
- XSS PHP
- SSD 복사
- asp.net dropdownlist
- javascript redirection
- javascript 바코드스캔
- 바코드 생성하기
- ViewData
- javascript 바코드 생성
- Mac Oracle
- jquery 바코드생성
- XSS방어
- 타임피커
- 강제이동
- asp.net core Select
- asp.net Select
- 파일업로드 유효성체크
- 맥 오라클설치
- django 엑셀불러오기
- 바코드 스캔하기
- ASP.Net Core 404
- 말줄임표시
- javascript 유효성체크
- 하드 마이그레이션
- ViewBag
- 파일업로드 체크
웹개발자의 기지개
Jsoup 으로 웹페이지 소스 파싱1 (최근 로또 당첨번호 확인) 본문
특정 웹사이트의 전체 소스내용들을 특정 부분만 추출하여 파싱하고자 할때,
Jsoup 라이브러리 소스가 있었다.
소스를 일단 다운 받자.
그 다음,
이클립스에 외부 jar 파일을 추가 시키자
현재 JavaJsoupTest 프로젝트에서 마우스 우클릭후 아래 그림처럼 따라하자.
해당 소스를 추출할 로또사이트의 웹소스보기로 확인해 보자.
우측 글씨가 잘안 보인다 TT;;
해당 소스만 뽑아 봤다.
위에서 id 값으로 drwtno1부터 6까지 그리고, 보너스 번호 id값 bnusNo 이다.
그리고, 몇회 로또 당첨번호인지도 소스로 확인해 두자.
id값은 lottoDrwNo 이다.
이제 추출 동작을 위해
LottoNum,java 파일(실제 Jsoup 동작소스) 과 JsoupTest.java 파일 (실제 main함수가 있는 실행소스) 을 구분하여 만들어 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class LottoNum {
public LottoNum() {
getNumber();
}
public void getNumber() {
try {
Document doc = Jsoup.connect("https://www.nlotto.co.kr/common.do?method=main").get();
//System.out.println(doc);
Elements contents ;
contents = doc.select("#lottoDrwNo");
System.out.println("[ "+ contents.text() +" 회 로또 당첨번호]\n");
for (int i=1;i<=6;i++) {
contents = doc.select("#drwtNo" + i);
System.out.println(i+ "번 : " + contents.text());
}
contents = doc.select("#bnusNo");
System.out.println("보너스번호 : " + contents.text());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
|
cs |
LottoNum.java 안에 보면 Jsoup.connect 해서 로또 웹사이트 주소로 연결하고
15번줄에 doc.select("#lottoDrw") 해서 #id 값하면 select 함수로 해당 부분을 추출할 수 있다. 그리고 .text() 함수로 바로 내용을 뽑는다.
1
2
3
4
5
6
7
8
9
10
|
public class JsoupTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
LottoNum lotto = new LottoNum();
}
}
|
cs |
참고사이트 : 근둥이님의 포스팅글
m.blog.naver.com/lghlove0509/220963952487
[ 추가 부연 ]
무슨연유인지 몇일전에 잘돌아가던 Jsoup 1.12.1 jar 라이브러리 요놈이
소스는는 위 그대로인데,
java.io.IOException: Mark invalid
이런식으로 try catch 문에 계속 걸리면서 중지 되었다.
구글링 하여 찾아보니, 영문 포스팅 글중에 버전을 아래로 낮추 마이그레이션 버전을 설치하라는 거였다.
기존의 1.12.1 버전을 삭제하고, 위의 jsoup 1.10.3 버전파일을 새로 jar파일을 추가하고 빌드추가하니
깨끗하게 잘돌아갔다.
이야 신기신기 ~~~
'Java' 카테고리의 다른 글
[java] 배열내 요소 모두 삭제, 리셋하기 (0) | 2020.06.11 |
---|---|
java 미세먼지경보 open API JSON으로 파싱하기1 ( json 객체화 ) (3) | 2019.12.02 |
Jsoup 으로 웹페이지 소스 파싱2 (네이버/다음 실시간 검색어 추출) (0) | 2019.07.21 |
json 이용을 위하여 Gson 추가하기 (0) | 2019.04.13 |
java 환경변수 설정 (0) | 2018.11.25 |