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]

1. 웹 사이트가져오기

먼저 온라인 라이브러리를 사용한다

 

라이브러리란? 모듈과 동일하다 함수, 클래스 등등이 모여있는 집합체라고 이해할 수 있다

 

파이썬에 내장되어있는 모듈과 다르게 온라인 라이브러리는 강력하고 빠르게 데이터들을 추출할 수 있다

 

니꼬쌤은 requests2와 beautifulsoup4를 추천했다

 

requests2는 URL전체를 가져오는 용도이다

 

beautifulsoup4는 그것을 html태그로 읽어내는 용도이다

 

각각 Repl.it의 Packages에서 검색해서 다운로드할 수 있다

 

그리고 이런 식으로 불러온다

 

import requests
from bs4 import BeautifulSoup

이렇게 두가지 라이브러리를 불러왔다

 

우리가 찾고자하는 데이터는 채용공고의 제목,회사의 이름, 회사의 위치, 지원할 수 있는 링크이다

 

또 마지막페이지 번호가 필요한데 이것은 마지막 페이지까지의 정보를 다 스크래핑하기위해서 필요하다

 

requests 라이브러리를 통해 URL을 가져온다 그리고 result변수에 담아준다

result = requests.get(URL)

그리고 beautifulsoup 라이브러리를 통해 URL을 html형태로 파싱해서 데이터를 추출할 수 있다

마찬가지로 soup변수에 담아준다

파싱이란? 페이지 내 선택한 데이터를 순서나 패턴별로 추출하는 것이다

soup = BeautifulSoup(result.text, "html.parser")

 우리는 html패턴으로 추출했다

 

import requests
from bs4 import BeautifulSoup


result = requests.get(URL)
soup = BeautifulSoup(result.text, "html.parser")

작성한 코드

+ Recent posts