본문 바로가기
코딩

스크롤이 계속 내려가는 사이트 크롤링 하는 법

by 김유로01 2022. 5. 25.
728x90
반응형

 

일반적인 사이트는 1페이지, 2페이지 이렇게 나뉘어 있는 경우가 많다.

 

하지만 어떤 사이트들은 페이지 구분 없이 스크롤을 내리면 내릴수록 계속해서 정보가 나오는 사이트들도 있다.

 

이런 사이트에서 일반적으로 크롤링을 시도할 경우,

 

처음에 나오는 정보들만 가져오고 스크롤을 내렸을 때의 정보를 가져오지 못할 것이다.

 

그렇다면 어떻게 해야할까.

 

 

네이버 view가 그 예시 중 하나이다

 

계속 스크롤을 내리다 보면 저렇게 로딩창이 뜨면서 계속 정보가 뜨는 것을 확인할 수 있다.

 

컨트롤 + 쉬프트 + i 키를 동시에 누르면 개발자 도구 창이 뜬다. 이후에 네트워크 탭 클릭

 

네트워크 탭을 보면 뭐가 엄청나게 많이 나오는 것을 확인할 수 있는데 페이지를 내리면 내릴수록 업데이트가 된다.

 

네트워크 탭은 이 페이지를 보여주기 위해 서버에서 받아온 파일들을 보여주는 곳이다.

 

네트워크 탭을 켠 상태에서 스크롤을 쭉 내리다 보면 정확하게 페이지가 업데이트되는 시점에서 네트워크 탭도 같이 바뀌는 것을 확인할 수 있다. 그리고 또 내리면 또 바뀐다.

 

이걸로 네이버 뷰도 페이지가 없는 것처럼 보이지만 사실 페이지로 나뉘어 있다는 것을 유추할 수 있다.

 

즉, 네트워크 탭이 업데이트되기 전까지가 1페이지인 것이다.

 

그렇다면 각 페이지 주소는 어떻게 찾을까?

 

 

검색 후 스크롤을 내리지 않은 상태이다. 즉 1페이지 상태인데 여기의 주소를 찾아보자.

 

주소를 찾는 방법은 1페이지에 해당하는 정보 값을 검색해서 나오는 주소를 찾으면 된다. 

 

그렇다면 3번째에 해당하는 '부조리를 의식하는 인간'이 다른 페이지에서도 겹치지 않을 것 같으니 저걸로 검색해보자.

 

이렇게 검색을 해보니 하나가 나온다.

 

저게 저 블로그에 해당하는 주소인 것으로 보인다. 저 주소를 알기 위해서

 

 

Headers 탭으로 가자

 

 

그러면 쉽게 저 주소를 얻을 수 있다. 자 그럼 1 페이지에 해당하는 주소를 찾았다.

 

그럼 2페이지에 해당하는 주소, 3페이지, 4페이지까지 얻을 수 있을 것이다.

 

주소를 찾아보면 페이지마다 주소가 거의 똑같을 것이다. 아마 한 부분에서만 숫자가 다를 텐데 그것으로 우리는 또 유추할 수 있다.

 

아, 숫자만 다르면 쉽게 페이지를 크롤링할 수 있겠구나. 하고 생각해볼 수 있는 것이다.

 

끝.

 

 

 

웹에서 정보 뽑아먹기 - 웹 크롤러 만드는 법-

터미널 창에 pip install requests pip install bs4 하나씩 입력한다 그 후에 import requests from bs4 import BeautifulSoup 이렇게 코드를 입력해 놓으면 웹 크롤러 제작 기반 마련 성공이다. 굳이 설명하자면..

breakmatrix.tistory.com

 

 

웹 크롤러 짤 때 유용한 팁 -soup.select()-

select 문법 soup.select('.class명') -> 클래스 찾아줌. 여기서 . 은 html 용어로 클래스를 말함. soup.select('#id명') -> id 찾아줌. soup.select('태그명') -> html 태그 찾아줌. html 태그는 아무것도 안 붙..

breakmatrix.tistory.com

 

728x90
반응형

댓글