250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 주엽역 생활맥주
- 막내의막무가내 프로그래밍
- 프래그먼트
- 막내의막무가내 알고리즘
- 안드로이드
- 막내의막무가내 코틀린
- Fragment
- 막내의막무가내 안드로이드 코틀린
- 부스트코스에이스
- 안드로이드 Sunflower 스터디
- 막내의 막무가내 알고리즘
- 주택가 잠실새내
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 일상
- 프로그래머스 알고리즘
- 막내의막무가내 안드로이드
- 부스트코스
- 막내의막무가내 rxjava
- 안드로이드 sunflower
- 막내의막무가내 코볼 COBOL
- 2022년 6월 일상
- 막내의막무가내 코틀린 안드로이드
- 막내의막무가내 플러터
- 막무가내
- 막내의막무가내 목표 및 회고
- flutter network call
- 막내의막무가내 플러터 flutter
- 막내의막무가내 SQL
- 막내의 막무가내
- 막내의막무가내
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[자바(java)] Jsoup 크롤링 사용 (feat. Spring Boot , Android Weekly article) 본문
자바(java)
[자바(java)] Jsoup 크롤링 사용 (feat. Spring Boot , Android Weekly article)
막무가내막내 2020. 6. 29. 13:52728x90
https://youngest-programming.tistory.com/302
저번 크롤링에 이은 또 한번의 Jsoup 사용기록을 남깁니다. ㅎㅎ
먼저 크롤링 할 IT 기사 사이트입니다.
태그인데
각각 빨간색과 형광펜으로는 불러올 것들을 표시,
파랑색표시는 이것을 사용해서 불러오는데 이용할 것 들 입니다.
[코드는 다음과 같습니다.]
package com.mtjin.itarticle.controller;
import lombok.AllArgsConstructor;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import java.io.IOException;
@Controller
@AllArgsConstructor
public class CrawlingTestController {
@GetMapping(value = "/crawling")
public String goRegister() throws IOException {
Document doc = Jsoup.connect("https://androidweekly.net/").get();
Elements infoList = doc.select("div[class=sections]").select("a[class=article-headline]");
Elements contentList = doc.select("span.main-url + p");
for (int i = 0; i < infoList.size(); i++) {
//제목
System.out.println(infoList.get(i).text());
//링크
System.out.println(infoList.get(i).attr("href"));
//이미지 url
String imageUrl = doc.select("a[href=" + infoList.get(i).attr("href") + "]").select("img").attr("src");
System.out.println(imageUrl);
//내용
String content = contentList.get(i).text();
System.out.println(content);
}
return "views/login/register";
}
}
1. 먼저 제목과 링크는 <a> 태그의 article-headline 클래스 이름으로 불러옵니다.
2. 이미지는 있을수도 있고 없을 수도 있고 class, id 값이 따로 없기 떄문에 1번에서 불러온 링크 값을 이미지도 href로 갖고있다는 점을 사용해 이미지소스 src를 불러옵니다.
3. 내용도 마찬가지로 id, class값이 따로 없고 2번처럼 해당 태그의 속성을 사용해 불러올 것도 없기 때문에 내용이 있는 태그 <p> 위에 main-url 이라는 class 이름을 가진 <span> 태그가 있다는 점을 사용해 인접형태선택자(+) 를 사용해 불러왔습니다.
[출력 결과는 다음과 같습니다.]
프로젝트 출처:
https://github.com/mtjin/springboot-itarticle
댓글과 공감은 큰 힘이 됩니다. 감사합니다!!
728x90
'자바(java)' 카테고리의 다른 글
[자바] 자바 함수형 인터페이스(Functional Interface) 총 정리!!! (0) | 2021.01.14 |
---|---|
[자바] 알고리즘 정규식 정리 (0) | 2020.09.13 |
[자바] 빈객체이거나 빈문자열("" or null) 체크하는 방법 (0) | 2019.11.15 |
[자바] 팩토리메소드 패턴 보기 좋았던 예제 (0) | 2019.09.28 |
[자바] 한국시간으로 날짜 일수 차이 구하기 (2) | 2019.09.23 |
Comments