Web Crawler
-
Ajax 웹 크롤러 ( 롯데시네마 )Web Crawler 2019. 12. 11. 06:32
이번에 만들어볼 크롤러는 롯데시네마의 상영 정보를 가져오는 프로그램을 만들어 볼 것이다. 해당 페이지는 사용자가 요청을 할 때 마다 하나의 새로운 페이지를 새롭게 여는 방식이 아니라 사용자가 원하는 페이지의 일부 데이터만 새롭게 불러오는 방식이다. 페이지는 그대로 위와 같은 방식은 Ajax : JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술 Asynchronous JavaScript and XML 비동기적으로 JavaScript와 XML을 이용하는 방식이라고 할 수 있다. EX ) 사용자는 현재 A페이지에 머물고 있으며 A페이지에서 오늘의 상영 영화의 정보들이 필요함 이때 사용자는 필요한 정보를 서버측에 요청 서버는 사용자에게 해당 정보가 있는 B페이지의 U..
-
CGV 파싱Web Crawler 2019. 11. 27. 20:54
위의 사진은 전에 iframe 페이지를 크롬 브라우저요 요청한 결과이다 div 태그의 클래스 sect-showtimes인 하위 태그들 li가 있으며 해당 li태그 들은 각각의 영화 정보들을 나누어서 담고 있다 그렇다면 이제 이 li 태그들을 하나씩 불러와서 필요한 정보를 불러온다면 성공적으로 크롤링하는 것이다. 가장 먼저 내가 필요로 하는 정보는 다음과 같다 영화 이름 영화 상영관 위치 영화 상영 시간 상영관 잔여 좌석 상영 날짜 이제 각 정보들이 포함되어 있는 태그들을 찾아야 한다. 영화 이름 -> 다음과 같은 위치에 영화 이름에 대한 정보가 있는 것을 찾았다 바로 한번 정보를 불러와 보자 for i in soup.select("div.sect-showtimes > ul > li") : name = i..
-
CGV 필요한 데이터 파싱Web Crawler 2019. 11. 27. 20:43
이전에 셀레니움을 통해서 각 CGV 지역별 상영관 페이지에 대한 정보를 가져왔다. 이제부터는 가져온 페이지들을 반복문을 통해서 하나하나씩 페이지를 불러와서 필요한 정보만 파싱해오는 것을 할 것이다. 파싱할 페이지를 보니 파싱할 데이터가 있는 부분이 iframe 태그로 되어 있는 것을 확인 할 수 있다 니움을 통해서 각 CGV 지역별 상영관 페이지에 대한 정보를 가져왔다. 이제부터는 가져온 페이지들을 반복문을 통해서 하나하나씩 페이지를 불러와서 필요한 정보만 파싱해오는 것을 할 것이다. 파싱할 페이지를 보니 파싱할 데이터가 있는 부분이 iframe 태그로 되어 있는 것을 확인 할 수 있다 해당 iframe 태그는 현재 페이지에 새로운 페이지를 하나더 추가 할 수 있게 해주는 태그라는 것을 찾을 수 있었다...
-
크롤링 시작 ( 각 지역별 상영관 )Web Crawler 2019. 11. 27. 20:17
가장먼저 크롤링할 페이지를 보자 내가 크롤링 할 데이터는 서울에 속한 전 지역들의 상영 정보이다. 그러기 위해서는 해당 페이지의 네비게이션 바에 연결되있는 링크를 가져와야 한다. 하지만 해당 페이지는 JS로 바뀌기 때문에 Requests 를 통해서 응답을 받기에는 무리가 있음 -> Selenium 사용 위의 사진은 해당 네비게이션 바에 연결 된 링크의 위치이다. li 태그가 각 지역별로 존재하면서 해당 li 태그의 하위 태그인 a태그의 href 속성 값 으로 각 지역 페이지를 요청할 때 필요한 파라미터 값이 담겨져 있다 그렇다면 해당 속성 값을 불러와 URL 요청 양식에 맞게 요청을 한다면 원하는 페이지가 불러와질 것이다. from bs4 import BeautifulSoup from selenium i..
-
CGV 크롤러 (Requests & selenium)Web Crawler 2019. 11. 27. 19:54
크롤링을 할때 분명히 정확한 경로의 태그를 불어와도 none을 반환해주는 경우가 있음 이럴 경우에는 소스를 볼때 해당 태그가 소스에 없을 경우에 none을 출력함 이유를 알기 위해서는 아래의 방식 2가지의 차이점과 웹페이지에 대해 알고 있어야함 웹페이지는 HTML이라는 언어와 CSS, 자바스크립트라는 3가지 언어로 구성이 되어있음 HTML소스를 보는 방식 2가지의 차이점 1. 페이지 소스 메뉴를 통해 본 HTML은 웹서버로부터 받은 최초의 HTML이기 때문 + 이 페이지 소스 메뉴를 통해본 HTML소스의 구조는 자바스크립트로 인해 로딩 후에 변경될 수 있기 때문 EX ) 만약 페이지 소스 메뉴에는 있지만 개발자 도구에서 본 소스에 없는 경우에는 자바스크립트로 인해서 해당 내용이 지워진 경우라고 할 수 있..
-
C.G.V 영화 크롤러Web Crawler 2019. 11. 27. 13:54
가장 먼저 영화 정보를 크롤링하기 전에 정확히 크롤러가 어떠한 역할을 할 것 인지 확실히 정해두고 만들 필요가 있음 일단 시험 삼아 가장 먼저 서울권 에서만 1시간 단위로 모든 상영 정보를 불러오게 만들 것 임 내가 만들고 싶은 것 은 ? C.G.V 페이지에서 영화에 관한 정보를 불러오는 프로그램 해당 크롤러가 해야 할 일은? 6하 원칙에 맞게 누가 ? 크롤러가 언제 ? 1시간 간격 마다 어디서 ? C.G.V 강남 웹 페이지에서 무엇을 ? 영화 이름, 영화 상영관 위치, 영화 상영 시간, 상영관 잔여 좌석, 상영 날짜를 어떻게 ? Python 라이브 러리를 통해 ( requests, bs4 ) 데이터를 추출해서 왜 ? 불러온 정보를 최종적으로 DB에 담기 위해 내가 어떠한 프로그램을 만들지 생각을 정리 ..