ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CGV 크롤러 (Requests & selenium)
    Web Crawler 2019. 11. 27. 19:54

     

    크롤링을 할때 분명히 정확한 경로의 태그를 불어와도 none을 반환해주는 경우가 있음 

     

    이럴 경우에는 소스를 볼때 해당 태그가 소스에 없을 경우에 none을 출력함

     

    이유를 알기 위해서는 아래의 방식 2가지의 차이점과 웹페이지에 대해 알고 있어야함

     

    웹페이지는 HTML이라는 언어와 CSS, 자바스크립트라는 3가지 언어로 구성이 되어있음

     

    HTML소스를 보는 방식 2가지의 차이점

     

    1. 페이지 소스 메뉴를 통해 본 HTML은 웹서버로부터 받은 최초의 HTML이기 때문

     + 이 페이지 소스 메뉴를 통해본 HTML소스의 구조는 자바스크립트로 인해 로딩 후에 변경될 수 있기 때문

     

    EX ) 만약 페이지 소스 메뉴에는 있지만 개발자 도구에서 본 소스에 없는 경우에는 자바스크립트로 인해서 해당 내용이 지워진 경우라고 할 수 있음

     

    2. 브라우저 개발자도구를 통해 확인했을시

     + 최초의 구조로부터 자바스크립를 통해 변경된 구조임

     

    EX ) 만약 페이지 소스 메뉴에는 없지만 개발자 도구에서 본 소스에 있는 경우에는 자바스크립트로 인해서 해당 해용이 추가 되었다고 볼 수 있음

     

    위와 같은 이유로 인해서 개발자 도구를 이용해서 올바를 태그와 속성값을 찾아서 불러 왔지만

     

    실제로는 자바스크립트로 인해 변경된 구조의 HTML소스이기 때문에 해당 태그와 속성값에 내용이 없음

     

     

    위와 같은 경우에 Requests 라이브러리로는 올바른 소스를 받아오기에 제약이 있음

     

     

    그렇기 때문에 리케스트스 말고 셀레니움 라이브러리를 사용하여 해당 페이지의 내용이  자바스크립트로 추가 되었어도 

    크롤링 하여 가져올 수 있음

     

     

     

     

     

     

     

     

     

    리퀘스트스와 셀레니움의 차이점

     

     

    Requests : 파이썬에서 동작하는 브라우저

       

       + 웹 서버로부터 초기 HTML만 받으며 추가 CSS / JavaScript는 처리할 수 없음

     

     

     

    Selenium : 브라우저가 아닌 브라우저를 원격조종 할 수 있는 역할 (크롬, 익스플로워, 파이어폭스 등)

       

       + 기존의 브라우저를 사용하기 때문에 CSS / JavaScript를 처리 할 수 있음

    'Web Crawler' 카테고리의 다른 글

    Ajax 웹 크롤러 ( 롯데시네마 )  (0) 2019.12.11
    CGV 파싱  (0) 2019.11.27
    CGV 필요한 데이터 파싱  (0) 2019.11.27
    크롤링 시작 ( 각 지역별 상영관 )  (0) 2019.11.27
    C.G.V 영화 크롤러  (0) 2019.11.27

    댓글

Designed by Tistory.