dullin
덜린의 코딩 항해 일지
dullin
전체 방문자
오늘
어제
  • 분류 전체보기 (257)
    • JAVA (19)
    • JAVASCRIPT (3)
    • HTML_CSS (3)
    • DB (35)
      • Oracle (16)
      • MySQL (17)
    • JAVA_SERVLET (5)
    • 오류노트 (4)
    • Library & API (6)
    • Spring (20)
      • 개발준비(setting) (1)
      • 전자정부프레임워크 (5)
    • 인공지능 (2)
    • Python (13)
    • OpenCV (1)
    • AI-900 (5)
    • Django (6)
    • Linux (0)
    • Android Studio (12)
    • React Native (1)
    • 프로 크리에이트 (1)
    • 오늘의 일기 (0)
    • PHP (2)
    • Next.js (0)

블로그 메뉴

  • 카테고리
  • 글쓰기
  • 홈

공지사항

인기 글

태그

  • 개발환경 세팅
  • 오블완
  • 오갈완
  • 코딩
  • 필사즉생행생즉사
  • laravel
  • 강철맷집
  • 갈증해소완료
  • 모두_화이팅
  • 오늘도 즐코딩
  • Safe Mode
  • 오늘도 에러박살
  • 덤벼라 스프링
  • 티스토리챌린지
  • 코딩왕이_되는_그_날까지
  • 예끼에러야
  • 선빵필승
  • 덤벼라
  • 라라벨
  • 오늘도 오류 한모금

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dullin

덜린의 코딩 항해 일지

jQuery - RSS(xml parsing)를 이용한 기사내용 크롤링하기
Library & API

jQuery - RSS(xml parsing)를 이용한 기사내용 크롤링하기

2022. 3. 26. 17:11

RSS는 XML 기반의 표준 이므로 내부적으로 XML parsing을 한 것을 짚고 넘어가자. 

 

이번 예제에서는 한겨레신문기사를 크롤링 해볼것이다.

 

https://www.hani.co.kr/arti/RSS/list1.html

 

RSS서비스 : 한겨레

RSS서비스 : 한겨레

www.hani.co.kr

 

국제 카테고리에 속한 기사를 크롤링해보려고한다.

it.java

package controller;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/it")
public class it extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String rss = req.getParameter("rss");
		rss = rss == null ? "https://rss.joins.com/joins_it_list.xml" : rss;
		
		URL url = new URL(rss);
		BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
		String s = null;
		resp.setContentType("text/xml; charset=utf-8");
		
		while((s = br.readLine()) != null){
			resp.getWriter().println(s);
		}
	}
}

 

student.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
$(function() {
	$.get("it", {rss:'https://www.hani.co.kr/rss/international'},function(data){
		console.log(data);
		var dataXml = $.parseXML(data);
		console.log(dataXml);
		
		var str = "<table border='1'>"
		            //태그찾는친구  // 반복순환(for문역할)
		$(dataXml).find("item").each(function() { 
			var title = $(this).find("title").text();
			var link = $(this).find("link").text();
			var description = $(this).find("description").text();
			var author = $(this).find("author").text();
			var pubDate = $(this).find("pubDate").text();
			
			str += "<tr>"
			str += "<td><a href='" + link + "'>" + title + "</a></td>"
			str += "<td>" + author + "</td>"
			str += "<td>" + pubDate + "</td>"
			str += "</tr>"
			console.log(title, link, description, author, pubDate);
		})
		str += "</table>"
		
		$("body").append(str);
	}, "text")
})
</script>
</head>
<body>

</body>
</html>

 

결과화면

-student.jsp 결과 화면

-기사 링크 클릭

-it.java 결과화면

저작자표시 (새창열림)

'Library & API' 카테고리의 다른 글

Hikari - 히카리 커넥션 풀(Connection pool) 사용해보기  (0) 2022.03.29
주소 팝업(+검색) api 사용 - jsp  (0) 2022.03.26
이메일 발송  (0) 2022.03.26
HTML parsing - 타 사이트 정보 가져와서 DB에 저장  (0) 2022.03.26
DOM(Document Object Model) - 문서 객체 모델 기초개념  (0) 2022.03.25
    'Library & API' 카테고리의 다른 글
    • Hikari - 히카리 커넥션 풀(Connection pool) 사용해보기
    • 주소 팝업(+검색) api 사용 - jsp
    • 이메일 발송
    • HTML parsing - 타 사이트 정보 가져와서 DB에 저장
    dullin
    dullin

    티스토리툴바