<웹 크롤링>
: 스크래핑 +크롤링
샘플 데이터를 웹 페이지로부터 "추출"하고 (스크랩핑)
추출한 데이터들을 내 프로젝트에 알맞은 형태로 "가공" 하는 것(크롤링)
▶타겟 웹 페이지
: 어떤 웹페이지로부터 데이터를 받아올 것인지 결정 (타겟팅)
예) 타겟웹페이지의 URL저장
네이버 웹툰
매일매일 새로운 재미, 네이버 웹툰.
comic.naver.com
참고 ) 만약 자바에 스윙(swing) 이 있다면 옛날버전
Documnet doc = 웹 페이지 정보를 URL로부터 받아온 정보
▶ Jsoup
: 웹을 갖고 오는 클래스 (자바가 안 갖고 있음)
다운받을 떄 주의 ) jar. 자바라이브러리 자바코드묶음
빌드패스에서 라이브러리 외부에서 추가
▶ HTML : 웹 페이지를 코딩하는 언어한쌍의 <> 태그로 이뤄져 있음
◆ span. 클래스이름
span. DailyList_title_epGnT
<span class=DailyList_title--ep>광마회귀 </span>
. : 클래스 속성명
# : 아이디 속성명
내가 필요한 정보만 가져오고 싶을 때
클래스 이름을 추가
"span.kor"
String str=elem.text();
메뉴만 뽑기 가능
=============================================
package crawling;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import model.CoffeeDTO;
public class Crawling {
public static ArrayList<CoffeeDTO> makeSample() {
final String URL="https://www.coffeebeankorea.com/menu/list.asp?category=13";
Document doc=null;
try {
doc=Jsoup.connect(URL).get();
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<CoffeeDTO> datas=new ArrayList<>();
int NUM=1001;
Elements elems=doc.select("span.kor");
Iterator<Element> itr=elems.iterator();
Elements elems2=doc.select("dd");
Iterator<Element> itr2=elems2.iterator();
while(itr.hasNext()) {
String name=itr.next().text();
///System.out.println(name);
String detail=itr2.next().text();
///System.out.println(detail);
itr2.next(); // 열량
itr2.next(); // 나트륨
itr2.next(); // 탄수화물
itr2.next(); // 당
itr2.next(); // 단백질
itr2.next(); // 카페인
itr2.next(); // 포화지방
///System.out.println();
CoffeeDTO data=new CoffeeDTO();
data.setNum(NUM++);
data.setName(name);
data.setDetail(detail);
datas.add(data);
}
for(CoffeeDTO coffee:datas) {
System.out.println(coffee);
}
return datas;
}
}