일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 머신러닝
- pytorch
- 크롤링
- AI
- 회귀
- 딥러닝
- 앱개발
- 유데미
- RNN
- 지정헌혈
- 모델
- mnist
- filtering
- Computer Vision
- 42서울
- Regression
- 자연어처리
- 코딩애플
- 크롤러
- map
- 파이썬
- 데이터분석
- 피플
- CV
- 선형회귀
- 인공지능
- Flutter
- 플러터
- 선형대수학
- 42경산
- Today
- Total
David의 개발 이야기!
웹 크롤러 이해하기[2] - 무한 스크롤 해결하기! 본문
크롤링을 하려다가 보면, 페이지가 넘어가야하는 부분들을 처리해야 할 때가 있다.
크게 두가지 종류로 나눌 수 있는데,
1. 페이지 넘버로 구분되어있을때
2. 스크롤을 계속해서 로딩을 계속 해주어야할때
로 나뉜다.
1. 페이지넘버로 구분되어있을때의 크롤링 방식
1번같은 예시는, 쿠팡처럼 쇼핑몰 같은데에서 잘 구현되어있다.
1번 같은 경우는
위처럼 URL 을 잘 보면, page=2/3/4/5/6 이렇게 바뀌는 것을 확인할 수 있다.
(현재는 page=2 인데, 나머지 그대로 두고, page=3 으로 하면, 다음 페이지를 불러온다)
따라서, 1번 같이 잘 구현되어있는 경우에는, 지난 포스팅때처럼 코드를 구현해 크롤링 하면 된다.
for 문으로 페이지 넘버를 증가하는 식으로..!!!
[기본 크롤링 코드 구현 ]
2023.05.02 - [크롤링 공부] - 웹 크롤러 개념 익히기[1] - 네이버 주식 현재가 크롤링 예제
2. 스크롤을 계속해서 로딩을 계속 해주어야할때
문제는 2번인데, 네이버 view 탭 처럼, 페이지 넘버가 있는 게 아니라, 밑으로 계속 내려줘야 다음 포스팅을 띄워준다.
기존에 코드처럼 구현을 하면, 상위 몇개까지만 크롤링이 되고, 그 이후의 것들은 크롤링이 안되는 문제가 생긴다.
이럴때에는 마찬가지로 규칙을 잘 찾아야한다.
구글 크롬 개발자콘솔 > 네크워크 창의 띄워서 확인해보면,
이런 화면이 뜨는데, 맨 오른쪽 "차단된 쿠키 있음"을 설정해제 해준다.
그럼 해당 화면에서 불러와지는 것들이 리스트에 뜨는데,
밑으로 내릴때 로딩이 되는 포스팅 제목을 검색한다.
필자의 경우, 비네이처스 단어가 있는 포스팅이 내렸을때 로딩되었다.
검색을 하고, 헤더에 들어가면, 요청 URL 이 있다.
URL 을 자세히 보면, 1번 때와 마찬가지로, start=61 이 부분이 계속 바뀌는걸 확인할 수 있다. (밑으로 내려서 로딩할때마다 start=숫자 가 30개씩 증가함 -> 30개씩 로딩한다는 의미)
따라서, 뒷 부분은 지난 포스팅과 같이 start 부분의 숫자를 증가시키면서 크롤링하면 해결할 수 있다.
간혹, 요청 URL 이 짧게 나오는 경우가 있는데, 다른 포스팅을 검색해서 요청 URL 을 분석해보자!
다음에는, JSON 에 대해 알아보자
2023.06.11 - [크롤링 공부] - 웹 크롤러 이해하기[3] - 코인원 사이트 분석 및 JSON 파일 이해하기
'크롤링 공부' 카테고리의 다른 글
시간과 관련된 함수 알아보기 - datetime, localtime, ctime, time (0) | 2023.06.11 |
---|---|
웹 크롤러 이해하기[3] - 코인원 사이트 분석 및 JSON 파일 이해하기 (0) | 2023.06.11 |
웹 크롤러 개념 익히기[1] - 네이버 주식 현재가 크롤링 예제 (0) | 2023.05.02 |
[ iframe 개념 이해하기 ] 다음카페 자동으로 글 게시하는 프로그램 만들기! (4) | 2021.12.16 |
인스타그램 자동 좋아요 누르기 프로그램 만들기! (1) | 2021.12.16 |