์น ํฌ๋กค๋ง(Web Scraping)
- ์ปดํจํฐ ์ํํธ์จ์ด ๊ธฐ์ ๋ก ์น ์ฌ์ดํธ๋ค์์ ์ํ๋ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๊ฒ
- ์น์ ๊ธฐ๋ณธ์ ์ผ๋ก HTMLํํ(์ด๋ค ์ ํํ๋ ํํ)๋ก ๋์ด ์๋ค.
- HTML์ ๋ถ์ํด์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ ๋ณด๋ค๋ง ๋ฝ์์ค๋ ๊ฒ
- ์ธ๊ตญ์์ 'Web Crawling'๋ณด๋ค๋ 'Web Scraping'์ด๋ผ๋ ์ฉ์ด๋ฅผ ๋ ์์ฃผ ์ฌ์ฉํจ
- Python์ผ๋ก ํฌ๋กค๋ง ํ๋ ์์ค๋ค์ด ๊ฐ์ฅ ํํ๋ค
์๋ํด๋ณด๊ธฐ
์ง์ ๋ง๋ EMPLIST์ฌ์ดํธ๋ฅผ crawling ํด๋ณด์
import requests
URL = "http://127.0.0.1:5000/"
resp = requests.get(URL)
print(resp.status_code)
print(resp.text)
- ํ์ด์ง ์์ค๋ณด๊ธฐ๋ฅผ ํตํด์ ๋์ค๋ html์ฝ๋๊ฐ ์ถ๋ ฅ๋๋ค.
ํ
์ด๋ธ ๋ฐ์ดํฐ์์ ํ์ํ ๊ฒ๋ง ๊ฐ์ ธ์ค๊ธฐ
import requests
from bs4 import BeautifulSoup
url = "http://127.0.0.1:5000/"
response = requests.get(url)
if response.status_code == 200:
html = response.text
soup = BeautifulSoup(html, 'html.parser')
trArr = soup.select('tr')
for idx, tr in enumerate(trArr):
if(idx > 0):
tdArr = tr.select('td')
print(idx, tdArr[1].text, tdArr[3].text)
else :
print(response.status_code)
- ์๋ ์ฌ์ดํธ์ ์๋ ํ
์ด๋ธ์์ ์ด๋ฆ๊ณผ ์ฃผ์๋ง ๊ธ์ด์๋ค.