์น ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋จ๊ณ : [์์ง] -> [์ ์ฅ] -> [์ฒ๋ฆฌ] -> [๋ถ์] -> [์๊ฐํ]
(์ด ์ค ์น ์คํฌ๋ํ์ [์์ง] ๋จ๊ณ์)
์น ์คํฌ๋ํ์ด๋?
- ์น ์คํฌ๋ํ(Web scraping)์ ํน์ ํ์ด์ง์ HTML ๋ฌธ์์ ์์ค ์ค์์ ์ํ๋ ์ ๋ณด๋ง ์ถ์ถํ๋ ๊ธฐ์ ์ด๋ค.
- ์น ์คํฌ๋ํ์ ๋ค์ด๋ฒ ์ผํ ์ต์ ๊ฐ ๊ฒ์, ์ธ์คํ๊ทธ๋จ ํ๊ทธ ๊ฒ์ ๋ฑ ๋ง์ ๊ณณ์ ์ฌ์ฉ๋๊ณ ์๋ค.
1) ์น ์คํฌ๋ํ ๋ฉ์ปค๋์ฆ
- ๋์์ ์ : ์ ๋ณด๋ฅผ ์ถ์ถํด์ฌ url๋ก ์ด๋ํ๋ค. ๋ง์ฝ ๋ค์ด๋ฒ ์ผํ์์ ์ฐ๊ทน์ ๋ํ ์ ๋ณด๋ฅผ ํ์ฑํด ์ค๋ ค๋ฉด https://search.shopping.naver.com/search/all?where=all&frm=NVSCTAB&query=%EC%97%B0%EA%B7%B9
- ๋ฐ์ดํฐ ๋ก๋ : API๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด XML, JSON ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์น ํ์ด์ง๋ฅผ ์คํฌ๋ํํ๋ ค๋ฉด HTML๋ฌธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ๋ฐ์ดํฐ ๋ถ์ : ๋ก๋๋ ๋ฐ์ดํฐ์์ ํ์ํ ๋ถ๋ถ์ ์ ์ ํ๋ค.
- ์์ง : ๋ฐ์ดํฐ ๋ถ์ ๊ณผ์ ์ ํตํด ์์งํ ๋ด์ฉ์ ์ ์ ํ ํ, ์ด๋ฅผ ์ถ์ถํ์ฌ ํ์ผ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ ์ฅํ๋ค.
2) ์น ์คํฌ๋ํ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- BeautifulSoup : ํ์ด์ฌ ์คํฌ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (์ค์น : pip install beautifulsoup4)
๋๋ณด๊ธฐ
1-1) BeautifulSoup
- ๊ฐ๋
- BeautifulSoup ๊ธฐ๋ณธ์ ์ผ๋ก HTML์ ์จ์ ํ๊ฒ ๋ถ๋ฌ์ฌ ์ ์๋๋ก ๋์์ฃผ๋ ๋ชจ๋์ด๋ค.
- ์๋ HTML์ ํ๊ทธ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์๋ง์ ๊ณต๋ฐฑ๊ณผ ๋ณํํ๋ ์์ค๋ค ๋๋ฌธ์ ์ค๋ฅ๊ฐ ์์ ์๋ ์์ด, ์ ๊ทํํ์๋ฑ์ผ๋ก ๋ถ๋ฌ์ค๊ธฐ ํ๋ค๋ค. ํ์ง๋ง beautifulsoup์ ์ด์ฉํ๋ฉด ์์์ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ์ก์์ ๊ณ ์น ํ ์ฐ๋ฆฌ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํด์ค๋ค.
- ๋จ๊ณ
- 1. request : ์นํ์ด์ง์ URL์ ์ด์ฉํด์ HTML ๋ฌธ์๋ฅผ ์์ฒญ
- 2. response : ์์ฒญํ HTML ๋ฌธ์๋ฅผ ํ์
- 3. parsing : ํ๊ทธ ๊ธฐ๋ฐ์ผ๋ก ํ์ฑ(์ผ๋ จ์ ๋ฌธ์์ด์ ์๋ฏธ์๋ ๋จ์๋ก ๋ถํด)
์ 3๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์คํฌ๋ํ์ ์ํํ๋ค.
- BeautifulSoup์์ ์ฌ์ฉํ ์ ์๋ ํ์์ ์ฅ๋จ์
Parser | ์ ์ธ๋ฐฉ๋ฒ | ์ฅ์ | ๋จ์ |
ํ์ด์ฌ html.parser | BeautifulSoup(markup, 'html.parser') | ์ค์นํ ํ์ ์์ ์ ๋นํ ์๋ |
|
lxml HTML parser | BeautifulSoup(markup, 'lxml') | ๋งค์ฐ ๋น ๋ฆ | lxml ์ถ๊ฐ ์ค์น ํ์ |
lxml XML parser | BeautifulSoup(markup, 'lxml-xml') BeautifulSoup(markup, 'xml') |
๋งค์ฐ ๋น ๋ฆ ์ ์ผํ๊ฒ ์ง์๋๋ xml parser |
lxml ์ถ๊ฐ ์ค์น ํ์ |
html5lib | BeautifulSoup(markup, 'html5lib') | ์น ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ์ด์ง๋ฅผ ํ์ฑ ์ ํจํ HTML5 ์์ฑ |
html5lib ์ถ๊ฐ ์ค์น ํ์๋งค์ฐ ๋๋ฆผ |
- Requests: HTTP ์์ฒญ์ ๋ณด๋ผ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (์ค์น : pip install requests)
'๐ก์น ํ๋ก์ ํธ > (ํ์คํ) MOVIEW ์ฌ์ดํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
webpack์ผ๋ก Django - Vue.js ์ฐ๋ํ๊ธฐ (0) | 2021.08.22 |
---|---|
๋ค์ด๋ฒ ์ผํ ์์ดํ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ (0) | 2021.08.06 |