190423 TIL 프로젝트 - 크롤링 && 웹

» 1막, TIL (Today I Learned)

크롤링

  • 영화관 상영시간표 데이터가 필요한데 모든 영화관에서 api를 제공하지 않았다. 그래서 크롤링 밖에 답이 없다는 결론을 내렸고, 지난 주에 노드로 샘플 크롤링을 해보았다.
const axios = require("axios");
const cheerio = require("cheerio");
const log = console.log;

const getHtml = async () => {
  try {
    return await axios.get("http://www.cgv.co.kr/common/showtimes/iframeTheater.aspx?areacode=01&theatercode=0056&date=20190418");
  } catch (error) {
    console.error(error);
  }
};

getHtml()
  .then(html => {
    let ulList = [];
    const $ = cheerio.load(html.data);
    const $bodyList = $("div.info-timetable ul").children("li");
    
 
    $bodyList.each(function(i, elem) {
      ulList[i] = {
          screen: $(this).find('a').attr('data-screenkorname'),
          time: $(this).find('a').attr('data-playstarttime')  
        };
    });

    const data = ulList.filter(n => n.time);
    return data;
  })
  .then(res => log(res));

image

공부하다보니 어떻게인진 모르겠으나 웹까지 공부하고 있었다. 팀 버너스리… 1989에 WWW 발명…

What is the World Wide Web?