최신 게시글(JAVA)
2017.07.10 / 17:13

JSoup script 파싱

XMaLL관리자
추천 수 106

안녕하세요 어제, 아니 오늘 세벽에 과제 하다 파싱에 어려움이 있어 아질게에 질문글을 올렸었습니다

http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3732772

여기서 제가 원하던 상품이름, 상품사진 까지 불러오는데 성공했는데요.. 

가격을 파싱하는데 자꾸 실패하네요..

어제 글 답글 처럼 <em id="tmpItemCurrSalePrc">2,800</em> 에 가격이 있긴 있는데 그걸 불러오면 그냥 값이 안나옵니다.. ㅠㅠ

https://try.jsoup.org

이 사이트에서 제가 입력한게 맞는지 확인해봐도 이게 맞는것처럼 나오는데 아래에 그 데이터가 안나오네요.. ㅜㅜ

도와주세요!!




소스 보니 가격은 자바스크립트로 동적으로 로드되는것 같네요. 결국 자바스크립트를 파싱해야 되겠네요
·
05-22 2016-05-22 23:41:59
IP 39.♡.56.93
역시 그런거군요... ㅠㅠ 다시또 자바스크립트 파싱을 찾아봐야겠네요.. ㅠㅠ

혹시 쉬운 방법 같은거 있을까요?
·
05-23 2016-05-23 00:53:08
IP 218.♡.58.125
페이지의 html 데이터를 라인 단위로 읽어들이면서

adlib_trk_data.price 로 시작하는 라인을 찾아서 = 뒤의 숫자를 읽어들이면 되겠네요.
·
05-23 2016-05-23 00:55:27
IP 110.♡.73.194
Document document = Jsoup.connect(url).get();

Element script=document.select("script").;



Pattern p = Pattern.compile("(?is)adlib_trk_data.price=\"(.+?)\"");

Matcher m = p.matcher(script.html());

이런식으로 하려고 하는데요.. 저기 Element script=document.select("script"). 이부분 뒤 뒤에 뭘 넣어야 저 스크립트로 가는지 모르겠네요.. ㅜ
·
05-23 2016-05-23 21:05:04
IP 218.♡.58.125
String url = "http://m.lottemart.com/mobile/cate/PMWMCAT0004_New.do?CategoryID=C001001700140006&ProductCD=8801117114206";

Document doc = Jsoup.connect(url).get();



Element script = doc.select("div#document > script:eq(6)").first();



Pattern p = Pattern.compile("(?s) *adlib_trk_data\\.price = \\\"(\\d*)\\\""); 



Matcher m = p.matcher(script.data()); 

while(m.find()) 

System.out.println(m.group(1));