티스토리 뷰

node.js

request와 cheerio를 이용한 웹 크롤링

모카데브 2018. 12. 25. 21:43

node.js에서 requestcheerio로 아주 간단하게 웹페이지를 크롤링해서 원하는 정보를 얻을 수 있다.


request 샘플 코드에서 내용만 살짝 바꿔서 네이버에서 실시간 검색어를 받아와서 출력해주는 프로그램을 만들어 보자.


const request = require('request');
const cheerio = require('cheerio');

const options = {
url: 'https://www.naver.com',
headers: {
'User-Agent': 'request'
}
};

const callback = ((error, response, body) => {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(body);
const search = $('.ah_roll_area > .ah_l > .ah_item > a > .ah_k');
search.each((index, item) => {
console.log(`${index + 1} - ${$(item).text()}`);
});
}
});

request(options, callback);


request로 네이버 메인 페이지 내용을 받아와서 cheerio로 그 내용을 읽은 후 selector를 이용해서 실시간 검색어 부분만 파싱을 한다.


실행 결과


$ node naver.js

1 - 크릴 오일

2 - 안드레아 보첼리

3 - 가려진 시간

4 - 말레피센트

5 - 고파도

6 - 월요일이 사라졌다

7 - 서수연

8 - 베트남 북한

9 - 이필모

10 - 전홍준박사

11 - 인턴

12 - 눈이 부시게

13 - 지금 만나러 갑니다

14 - 곽동연

15 - 범블비 쿠키영상

16 - 콩 스컬 아일랜드

17 - 라이브 에이드

18 - 이일재

19 - 북한 베트남

20 - 신과함께


다음에는 네이버 주식에서 내용을 크롤링해서 맞춤형 페이지를 만들어 봐야 겠다.




반응형

'node.js' 카테고리의 다른 글

heroku에서 timezone 설정하기  (1) 2019.04.25
sequelize에서 array rows update하기  (4) 2018.09.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함