
HTML ์ฝ๋๋ฅผ ๋ถ์ํด์ฃผ๋, HTML Parser
from bs4 import BeautifulSoup
# BeautifulSoup๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด
์๋ค.
# ์ฒซ๋ฒ์งธ ์ธ์๋ก๋ response์ body๋ฅผ ํ
์คํธ๋ก ์ ๋ฌํฉ๋๋ค.
# ๋๋ฒ์งธ ์ธ์๋ก๋ "html"๋ก ๋ถ์ํ๋ค๋ ๊ฒ์ ๋ช
์ํด์ค๋๋ค.
soup = BeautifulSoup(res.text,"html.parser")
# title ๊ฐ์ ธ์ค๊ธฐ
soup.title
# head ๊ฐ์ ธ์ค๊ธฐ
soup.head
# body ๊ฐ์ ธ์ค๊ธฐ
soup.body
# <h1> ํ๊ทธ๋ก ๊ฐ์ธ์ง ์์ ํ๋ ์ฐพ๊ธฐ
h1 = soup.find("h1")
# <p> ํ๊ทธ๋ก ๊ฐ์ธ์ง ์์๋ค ์ฐพ๊ธฐ
soup.find_all("p")
# ํ๊ทธ ์ด๋ฆ ๊ฐ์ ธ์ค๊ธฐ
h1.name
# ํ๊ทธ ๋ด์ฉ ๊ฐ์ ธ์ค๊ธฐ
h1.text
# ์คํฌ๋ํ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์๋ด
์๋ค.
import requests
from bs4 import BeautifulSoup
# ์์ ์ฌ์ดํธ์ ์์ฒญ์ ์งํํ๊ณ , ์๋ต์ ๋ฐํ์ผ๋ก BeautifulSoup ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด
์๋ค.
res = requests.get("http://books.toscrape.com/catalogue/category/books/travel_2/index.html")
soup = BeautifulSoup(res.text,"html.parser")# res.text ์ res.content์ ์ฐจ์ด
# <h3> ํ๊ทธ์ ํด๋นํ๋ ์์๋ฅผ ํ๋ ์ฐพ์๋ด
์๋ค
book = soup.find("h3")
# <h3> ํ๊ทธ์ ํด๋นํ๋ ์์๋ฅผ ๋ชจ๋ ์ฐพ์๋ด
์๋ค
h3_results = soup.find_all("h3")
h3_results[0]
์ฐพ์์จ ๋ฐ์ดํฐ๋ค์ ๋ชจ๋ ๊ฐ์ฒด์ด๋ฏ๋ก, ์ ํฌ๊ฐ ์ต์ํ ๋ฐฉ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค.
ํ๊ทธ๋ ์์ ์ ์ด๋ฆ ๋ฟ๋ง ์๋๋ผ ๊ณ ์ ํ ์์ฑ ๋ํ ๊ฐ์ง ์ ์์ต๋๋ค.
์ด ์ค์์ id์ class๋ Locator๋ก์, ํน์ ํ๊ทธ๋ฅผ ์ง์นญํ๋ ๋ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
id๋ฅผ ์ด์ฉํ ํ๊ทธ ์ฐพ๊ธฐ
## id๊ฐ results์ธ div ํ๊ทธ๋ฅผ ์ฐพ์๋ด
์๋ค.
soup.find("div", id = "results")
class๋ฅผ ์ด์ฉํ ํ๊ทธ ์ฐพ๊ธฐ
# class๊ฐ "page-header"์ธ div ํ๊ทธ๋ฅผ ์ฐพ์๋ด
์๋ค.
find_results = soup.find("div", "page-header")
๐ก์น ์คํฌ๋ํ์ ํตํด ์ฐพ์ ๋ฐ์ดํฐ๋ค์ด ๊ฐ์ฒด๋ก ์ ์ฉ๋๋ค๋ ์ ์ด ์ ๊ธฐํ๊ณ , ์ด๋ฅผ ์ด์ฉํด ์ฌ๋ฌ ๋ฐ์ดํฐ ๊ฐ๊ณต์ ํธ๋ฆฌํ๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.