티스토리 뷰

Cheerio로 cgv 웹 크롤링(키워드 찾기)

  • 알라딘 4dx를 예매하려고 크롤링 튜토리얼을 해보았다. 원래는 찾고자 하는 키워드를 홈페이지에서 찾은 뒤 텔레그램으로 알림을 줄 생각이었지만, 하다가 예매가 오픈해버리는 바람에..:) 키워드 찾는 데까지만 하고 일단 정리.

  • source code

    • crawler.js
    var request = require('request'); // used to make HTTP request
    var cheerio = require('cheerio'); // parse and select HTML elements
    var URL = require('url-parse'); // parse URLs
    
    // 키워드를 검색할 url 주소. 극장별 영화 시간표에 들어가서 개발자도구의 소스를 보면 해당 극장의 상영시간표를 찾을 수 있다. theatercode, date를 변경하여 극장과 날짜를 고르면 된다. 
    var START_URL = "http://www.cgv.co.kr/common/showtimes/iframeTheater.aspx?areacode=01&theatercode=0059&date=20190727";
    var SEARCH_WORD = "알라딘";
    var url = new URL(START_URL);
    
    visitPage(url);
    
    function visitPage(url) {
        // Make the request
        console.log('Visiting page ' + url);
        request(url, function(error, response, body) {
            //check status 200
            console.log('Status code: ' + response.statusCode);
            if(response.statusCode !== 200) {
    						visitPage();
                return; 
            }
    
            // Parse the document body
            var $ = cheerio.load(body);
            var list = $('.info-movie');
            list.each(function(i,v) {
                var $title = $('strong', this);
                if($title.text().trim() === SEARCH_WORD) {
                    var $parentDiv = $title.parent().parent().parent();
                    console.log(SEARCH_WORD + "은 " + i + "번째 인덱스에 있어요"); 
                    console.log($('.info-hall li',$parentDiv).text());
                }
            })
        })
    }
    

     

    • package.json
    {
      "name": "simple-webcrawler-javascript",
      "version": "0.0.0",
      "description": "A simple webcrawler written in JavaScript",
      "main": "crawler.js",
      "author": "dy",
      "license": "ISC",
      "dependencies": {
        "cheerio": "^0.19.0",
        "url-parse": "^1.0.5",
        "request": "^2.65.0",
        "sanitize-html": "^1.20.1"
      }
    }
    

 

  • terminal 콘솔

    일단 dom위치를 찾아서 콘솔에 찍히게 하는 것까지 성공. 이제 boolean 리턴하는 함수를 만들어서 키워드를 찾을 시 true를 리턴하게 하고, 결과값이 true면 알림을 보내도록 하는 것을 하면 된다.

'Other Stuff' 카테고리의 다른 글

워킹 디렉토리 삭제하기 (Git)  (0) 2019.09.09
Docker 시작기(for window7)  (0) 2019.07.25
미니 프로젝트 설정  (0) 2019.07.10
Mac에서 톰캣 설치 및 포트 번호 바꾸기  (2) 2019.07.08
[Git] 깃 개념 이해하기 - 2  (0) 2019.06.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함