2. 페이지 인덱스를 수로 만들기
이전에 작성한 코드
import requests
from bs4 import BeautifulSoup
result = requests.get(URL)
soup = BeautifulSoup(result.text, "html.parser")
URL을 beautifulsoup를 통해 html형태로 파싱을 했다
그렇다면 특정 태그와 클래스명 등을 통해 데이터를 추출할수 있다
※html은 페이지의 코드라고 설명할 수 있는데
<html></html>이런식의 태그형태로 대부분 이루어져있다
요소들마다 가진 고유한 태그 또는 속성들을 찾아야만 데이터를 추출할 수 있다
우리가 찾고자하는 것은 페이지 인덱스!
페이지의 인덱스는 이렇게 생겼다
html태그들 중에 페이지 인덱스를 표현하는 태그를 찾으려면
페이지에서 우클릭 후 검사를 클릭하면 html태그들이 쫙 나온다
거기에 마우스를 갖다대면 그태그가 가리키는 요소들을 이런식으로 표현해준다
find함수를 통해 이 중 인덱스를 포함하는 태그를 찾아 준다
※find함수는 선택한 태그 하나를 찾아준다
find_all함수는 선택한 태그의 모든것(속성,클래스,아이디 등등)을 찾아주며 그것을 리스트의 형태로 나타낸다
pagination = soup.find("div", {"class": "pagination"})
indexs = pagination.find_all('a')
pages라는 변수에 빈리스트를 만들어 준다
indexs를 문자열 형태만 추출해 정수형으로 바꿔준 뒤 리스트에 넣어준다
왜냐하면 indexs안에는 태그의 모든 것이 들어있고 우리가 찾고자하는 것은 수이기 때문이다
pages = []
for index in indexs[:-1]:
pages.append(int(link.string))
[:-1]는 리스트에 있는 문자열 중 처음부터 제일 마지막까지라는 의미이다
나는 10까지의 페이지 인덱스가 있었으므로 마지막 페이지는 10이다
max_page = pages[-1] #max_page = 10
작성한 코드
import requests
from bs4 import BeautifulSoup
result = requests.get(URL)
s = BeautifulSoup(result.text, "html.parser")
pagination = s.find("div", {"class": "pagination"})
links = pagination.find_all('a')
pages = []
for link in links[:-1]:
pages.append(int(link.string))
max_page = pages[-1]
'노마드코더스 아카데미 > 파이썬으로 웹스크래퍼 만들기' 카테고리의 다른 글
파이썬 웹스크래핑with nomad coders[10]끝!!! (0) | 2020.03.09 |
---|---|
파이썬 웹스크래핑with nomad coders[9] (0) | 2020.03.09 |
파이썬 웹스크래핑with nomad coders[7] (0) | 2020.03.08 |
파이썬 웹스크래핑with nomad coders[6] (0) | 2020.03.08 |
파이썬 웹스크래핑with nomad coders[5] (0) | 2020.03.05 |