ํ์ด์ฌ์ผ๋ก ๊ฐ๋จํ ์น ์คํฌ๋ํผ ๋ง๋ค๊ธฐ: ๊ธฐ์ด๋ถํฐ ํ์ฉ๊น์ง
ํ์ด์ฌ์ผ๋ก ๊ฐ๋จํ ์น ์คํฌ๋ํผ ๋ง๋ค๊ธฐ: ๊ธฐ์ด๋ถํฐ ํ์ฉ๊น์ง ์น ๊ฐ๋ฐ ๋ถ์ผ์์ ์น ์คํฌ๋ํ์ ๋งค์ฐ ์ ์ฉํ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํ์ด์ฌ์...
ํ์ด์ฌ์ผ๋ก ๊ฐ๋จํ ์น ์คํฌ๋ํผ ๋ง๋ค๊ธฐ: ๊ธฐ์ด๋ถํฐ ํ์ฉ๊น์ง
์น ๊ฐ๋ฐ ๋ถ์ผ์์ ์น ์คํฌ๋ํ์ ๋งค์ฐ ์ ์ฉํ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํ์ด์ฌ์ ์ฌ์ฉํ์ฌ ์ด๋ป๊ฒ ์น ์คํฌ๋ํผ๋ฅผ ๋ง๋ค ์ ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ์ด๋ณด์๋ ์ฝ๊ฒ ๋ฐ๋ผํ ์ ์๋๋ก ๊ธฐ์ด๋ถํฐ ํ์ฉ๊น์ง ๋จ๊ณ๋ณ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์น ์คํฌ๋ํ์ด๋?
์น ์คํฌ๋ํ์ ์น์ฌ์ดํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์์ง์ ์๋ํํ ์ ์์ผ๋ฉฐ, ๋ค์ํ ๊ฐ๋ฐ ํ๋ก์ ํธ์์ ํ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์ฌ์ดํธ์ ์ต์ ๋ด์ค๋ฅผ ์๋์ผ๋ก ์์งํ์ฌ ๋ถ์ํ๋ ๋ฑ์ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ค๋น ์์
ํ์ด์ฌ์ผ๋ก ์น ์คํฌ๋ํผ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ๊ธฐ๋ณธ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
์น ์คํฌ๋ํ์ ํ๊ธฐ ์ํด ๋ค์ ๋ ๊ฐ์ง์ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- Requests: ์น ํ์ด์ง ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํ ๋๊ตฌ
- BeautifulSoup: HTML ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ํ์ฑํ ์ ์๋ ๋๊ตฌ ์ค์น ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
pip install requests beautifulsoup4
๊ธฐ๋ณธ ์น ์คํฌ๋ํผ ๋ง๋ค๊ธฐ
์ด์ ๊ฐ๋จํ ์์ ๋ฅผ ํตํด ์น ์คํฌ๋ํผ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๋ฌ ์น ์ฌ์ดํธ ์ค์์๋ ์์ ๋ก ์ฌ์ฉํ ๊ฐ๋จํ ์น ํ์ด์ง๋ฅผ ์ ํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฒ ์ต๋๋ค.
import requests
from bs4 import BeautifulSoup
# ์น ํ์ด์ง ์์ฒญ
url = 'http://example.com'
response = requests.get(url)
# ํ์ด์ง ํ์ฑ
soup = BeautifulSoup(response.text, 'html.parser')
# ์ํ๋ ๋ฐ์ดํฐ ์ถ์ถ
title = soup.find('h1').text
print(f'ํ์ด์ง ์ ๋ชฉ: {title}')
์ฝ๋ ์ค๋ช
- Requests๋ฅผ ์ฌ์ฉํ์ฌ URL๋ก๋ถํฐ ์น ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- BeautifulSoup์ ํตํด HTML์ ํ์ฑํฉ๋๋ค.
- find ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์์๋ฅผ ์ฐพ๊ณ ํ ์คํธ๋ฅผ ์ถ์ถํฉ๋๋ค.
์น ์คํฌ๋ํผ ํ์ฉ
์น ์คํฌ๋ํผ๋ ๋ค์ํ ๋ชฉ์ ์ผ๋ก ํ์ฉ๋ ์ ์์ต๋๋ค. ๊ทธ์ค ๋ช ๊ฐ์ง ์์๋ฅผ ์๊ฐํฉ๋๋ค.
๋ด์ค ๊ธฐ์ฌ ์์ง
ํน์ ๋ด์ค ์ฌ์ดํธ์ ๊ธฐ์ฌ๋ฅผ ์๋์ผ๋ก ์์งํ์ฌ, ํธ๋ ๋๋ฅผ ๋ถ์ํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ์ ์์ต๋๋ค.
articles = soup.find_all('h2', class_='article-title')
for article in articles:
print(article.text)
๊ฐ๊ฒฉ ๋น๊ต ์ฌ์ดํธ ๋ง๋ค๊ธฐ
์ฌ๋ฌ ์ผํ๋ชฐ์ ๊ฐ๊ฒฉ ์ ๋ณด๋ฅผ ๋ชจ์์ ๋น๊ตํ ์ ์๋ ์๋น์ค๋ ๊ฐ๋ฅํฉ๋๋ค.
RSS ํผ๋ ๋ง๋ค๊ธฐ
์น์ฌ์ดํธ์ ์ฃผ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ ๋ด์ฉ์ ์๋์ผ๋ก ํผ๋ ํ์์ผ๋ก ๋ณํํ์ฌ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ์ฌํญ
์น ์คํฌ๋ํ์ ์ฌ์ฉํ ๋๋ ์ฌ์ดํธ์ ์ด์ฉ ์ฝ๊ด์ ์ค์ํด์ผ ํ๋ฉฐ, ๋ถํ์ํ ํธ๋ํฝ์ ๋ฐ์์ํค์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค. ์ผ๋ถ ์น์ฌ์ดํธ๋ ์คํฌ๋ํ์ ๊ธ์งํ๊ณ ์์ ์ ์์ผ๋, ๋ฐ๋์ ํ์ธ ํ ์งํํ์ธ์.
๊ฒฐ๋ก
์ด๋ฒ ๊ธ์์๋ ํ์ด์ฌ์ผ๋ก ์น ์คํฌ๋ํผ๋ฅผ ๋ง๋๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ์์๋ณด์์ต๋๋ค. ์น ์คํฌ๋ํ์ ๋ฐ์ดํฐ ์์ง๊ณผ ์๋ํ์ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๋ ์ ์์ผ๋ฉฐ, ๋ค์ํ ๊ฐ๋ฐ ํ๋ก์ ํธ์์ ํฐ ๋์์ด ๋ฉ๋๋ค. ๋ ๋์๊ฐ๋ ค๋ฉด ์ ๋ ๋์(Selenium)๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ํตํด ๋ ๋ณต์กํ ์น์ฌ์ดํธ๋ฅผ ๋ค๋ฃฐ ์ ์์ต๋๋ค. ๊ณ์ํด์ ํ์ตํ๊ณ ํ์ฉ ๋ฒ์๋ฅผ ํ์ฅํด ๋๊ฐ์๊ธฐ ๋ฐ๋๋๋ค.
โฌ๏ธ ์ด ๊ธ์ด ๋์์ด ๋์ จ๋ค๋ฉด, ์๋ ๊ด๊ณ ๋ฅผ ํ ๋ฒ๋ง ํด๋ฆญํด์ฃผ์ธ์! ์ ์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค ๐โโ๏ธ โฌ๏ธ