๐ŸŒฑ → ๐ŸŒณ

๋ชจ๊ฐ์ฝ” ํŒŒ์ด์ฌ ํฌ๋กค๋ง 7์ผ์ฐจ ๋ณธ๋ฌธ

Server/Python

๋ชจ๊ฐ์ฝ” ํŒŒ์ด์ฌ ํฌ๋กค๋ง 7์ผ์ฐจ

BAY 2022. 3. 25. 16:50
728x90

๐Ÿ“Œ BeautifulSoup์˜ ํ•„์š”์„ฑ

6์ผ์ฐจ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด 

requests๋กœ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ–ˆ์„ ๋•Œ html์˜ ํƒœ๊ทธ์™€ ์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ ๊ฒƒ์ด ์•„๋‹Œ

html ์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด ํƒ€์ž…์œผ๋กœ ์ฒ˜๋ฆฌํ•ด html์„ ํ…์ŠคํŠธ๋กœ ์ถœ๋ ฅํ•œ ๊ฒƒ์ด๋‹ค. 

 

๋‹ค์‹œ ๋งํ•ด, html์—์„œ class๊ฐ€ nums์ธ divํƒœ๊ทธ๋ฅผ ๋ฐ›์•„์™€๋ผ!์˜ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ,

๋ฌธ์ž์—ด์—์„œ <div class="nums">์ด ํฌํ•จ๋œ ๋ถ€๋ถ„์„ ์ถœ๋ ฅํ•ด๋ผ! ๋ผ๊ณ  ์ง  ์ฝ”๋“œ์ด๋‹ค. 

 

BeautifulSoup ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฌธ์ž์—ด์„ ์‹ค์ œ html ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ์–ด requests์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๐Ÿ“Œ BeautifulSoup ์‚ฌ์šฉํ•˜๊ธฐ

raw.text๋ฅผ ์‹ค์ œ html ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๊ธฐ 

bs4.BeautifulSoup(" HTML ๋ฐ์ดํ„ฐ ", "๋ฐ์ดํ„ฐ ํƒ€์ž…" )

html ๋ฐ์ดํ„ฐ๋กœ raw.text๋ฅผ, ๋ฐ์ดํ„ฐ ํƒ€์ž…์€html์ด๋ฏ€๋กœ "html.parser"์‚ฌ์šฉ

ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ, ๋ฌธ์ž์—ด์„ html๋กœ ๋ณ€ํ™˜ํ•ด ์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋„ ๋ฌด๋ฐฉ

 

1๏ธโƒฃ find ํ•จ์ˆ˜

find ํ•จ์ˆ˜๋Š” ์ธ์ž๋กœ ๋ฐ›์€ ํƒœ๊ทธ, ์„ ํƒ์ž์™€ ์ฒ˜์Œ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. 

# 1. ํƒœ๊ทธ๋งŒ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒฝ์šฐ
html.find('div')

# 2. ์„ ํƒ์ž๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
html.find(id = 'example1')
html.find(attrs = {'id':'example1'})

# 3. ํƒœ๊ทธ ์ด๋ฆ„๊ณผ ์„ ํƒ์ž ์ •๋ณด ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
html.find('div', {'id' : 'example1'})

2๏ธโƒฃ find_all() ํ•จ์ˆ˜

find ํ•จ์ˆ˜๋Š” ํƒœ๊ทธ์™€ ์„ ํƒ์ž๊ฐ€ ์ผ์น˜ํ•˜๋Š” ๊ฐ€์žฅ ์ฒซ ํƒœ๊ทธ๋ฅผ ๋ฐ›์•„์™”๋‹ค๋ฉด, 

find_allํ•จ์ˆ˜๋Š” ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•œ๋‹ค. 

 

๐Ÿ“Œ ์ตœ์ข… ์ฝ”๋“œ

import requests
import bs4

URL = 'https://dhlottery.co.kr/gameResult.do?method=byWin'
raw = requests.get(URL)

html = bs4.BeautifulSoup(raw.text, 'html.parser')

target = html.find('div', {'class' : 'nums'})
balls = target.find_all("span", {'class' : 'ball_645'})

print("< ์ตœ๊ทผ ๋กœ๋˜ ๋‹น์ฒจ ๋ฒˆํ˜ธ >")
for ball in balls[:-1]:
    print("๋‹น์ฒจ๋ฒˆํ˜ธ : ", ball.text)

print("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ : ", balls[-1].text)

 

๐Ÿ‘‰ ์ถœ๋ ฅ๊ฒฐ๊ณผ

 

โญ์ •๋ฆฌํ•˜๊ธฐโญโ€‹

 

โœ” ์ •์  ํฌ๋กค๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ BeautifulSoup

- HTML ๋ฌธ์„œ๋ฅผ ํƒ์ƒ‰ํ•ด์„œ ์›ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ๋ฝ‘์•„์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

- ์‹ค์ œ HTML ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.

 

โœ” BeautifulSoup์˜ ์ฃผ์š” ํ•จ์ˆ˜

- BeautifulSoup()

- find_all()

- find()

728x90