자바

데이터 크롤링

chantleman 2024. 8. 9. 12:07

 

 

크롤링해도 되는지 확인하기 위해서

 

내가 원하는 사이트 url /robots.txt 

 

 

 

 

네이버 / 구글

 

(네이버: json 정보는 가져가도 됨)

(구글: search는 기본적으로 disallow지만, search아래 about, static, howsearchworks는 가져가도 됨)

 

이렇게 크롤링해도 되는 정보와 하면 안되는 정보들을 명시해줍니다.

 

 

 

필수는 아니고 권고사항정도

 

 


yes24

 

 

 

 

url 복사 후

 

 

    public class JsoupUtil {

        public static String getHtml(String url) {
            Document doc= null;
            try {
                doc = Jsoup.connect(url).get();
                return doc.html();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "";
        }
    }

 

    public class Step1Main {
        public static void main(String[] args) {
            Step1Main sm = new Step1Main();
            sm.process();
        }

        public void process() {
            String url = "https://www.yes24.com/Mall/Main/Book/001?CategoryNumber=001";
            String html = JsoupUtil.getHtml(url);
            System.out.println(html);
        }
    }

url에 붙여넣기

 

 

 

소스 코드 출력된 것 확인

 

 

 

 

<main.html 파일 만들고, 그 파일에 소스 코드 넣기>

    public class Step1Main {
        public static void main(String[] args) {
            Step1Main sm = new Step1Main();
            sm.process();
        }

        public void process() {
            String html="";
            File main = new File("yes24/step1/main.html");
            if(main.exists())
            {
                try {
                    html=Files.readString(Paths.get(main.toString()));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            else {
                String url = "https://www.yes24.com/Mall/Main/Book/001?CategoryNumber=001";
                html = JsoupUtil.getHtml(url);
                try {
                    Files.write(Paths.get(main.toString()),html.getBytes());
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }


        }
    }

step1폴더에 main.html 만들어진 것 확인

 

 

 

 

 

 

 

 

가정 살림 카테고리만 크롤링하기 위해

F12 - elements에서 가정 살림 부분 클래스(cate2d) 체크

 

 

 

 

위 코드(Step1Main)에 추가

		String[] lines = html.split("\n");
		for(String line: lines)
		{
			//cate2d
			if(line.contains("<li class=\"cate2d"))
			{				
				System.out.println(line);
			}
		}

 

 

cate2d 클래스만 출력된 것 확인

'자바' 카테고리의 다른 글

yes24 데이터 DB 넣기  (0) 2024.08.19
File  (0) 2024.08.11
maven  (0) 2024.08.09
톰캣 포트 변경하기  (0) 2024.08.07
스레드. 배치파일  (0) 2024.08.06