๐จ ์ฃผ์: ์ด ํฌ์คํธ๋ ๋ฏผ๊ฐํ ๋ด์ฉ์ ํฌํจํ๊ณ ์์ต๋๋ค. ์์ค์ด ๋ฑ์ฅํ๋ฏ๋ก ์ฃผ์ ํด ์ฃผ์ธ์.
๐คฌ ์ฃผ์ : ์์ค ๋ ๋ฒจ 2์ ํด๋นํ๋ ๋ฌธ์์ ๋๋ค. ๋ค์ ๋ถ์พ ํ ์ ์์ต๋๋ค.
๊ฑฐ์ฐฝํ ์ด์ผ๊ธฐ๋ ์๋๋ค. ์ธํฐ๋ท์ ์กด์ฌํ๋ ์น ํฌ๋กค๋ฌ ๋๋ ์น ํ๋ก ํฐ์ด๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ ๊ฒ๋ค์ ๋ง๋๋ ๋ฐฉ๋ฒ๋ค์ ์ฝ๊ณ ์๊ธด ๋ต๋ตํจ์ ์ด๊ณณ์ ์กฐ๊ธ ํธ์ด ๋์ผ๋ ค๊ณ ํ๋ค.
์ธํฐ๋ท์ 'ํฌ๋กค๋ฌ ๋ง๋ค๊ธฐ'๋ฅผ ์ณค๋คํ๋ฉด 90% ํ๋ฅ ๋ก ํ์ด์ฌ์ผ๋ก ํฌ๋กค๋ฌ๋ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ์ฐ์ฌ์ง ๋ธ๋ก๊ทธ๊ฐ ์์ญ๊ฐ์ฉ ๊ฒ์ ๊ฒฐ๊ณผ๋ก ์ฐ์์ ๋จ์ด์ง๊ณ ๊ทธ ๋๋ถ๋ถ์ด Scrapy๋๋ ์ ๋ ๋์, BeautifulSoup4 ๋ฑ ์ ์ฌ์ฉํด์ ํน์ ์น ์ฌ์ดํธ์ ํ์ด์ง๋ฅผ ๊ธ์ด๋ด๋ ์ฝ๋๋ฅผ ์๊ฐํ๊ณ ์๋ค.
๋๊ฒ '์ด๋ ์ด๋ ํ์ด์ง๋ฅผ ๊ธ์ด์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํ๊ณ Telegram ์๋ฆผ๊น์ง ์ฐ๋ ํด ๋ด ์๋ค!' ์ ๋์ด๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ๋ค์ ํฌ๋กค๋ฌ๋ผ๊ณ ๋ณด๊ธฐ์ ์ด๋ ต๋ค. ๋๋ถ๋ถ์ ๋ธ๋ก๊ทธ๋ค์ด '๋๋ง์ ์น ํฌ๋กค๋ฌ ๋ง๋ค๊ธฐ' ๋ฐ์์ ์ ๋ชฉ์ผ๋ก ์์ํด์ ์ฌ์ง์ด ์ฝ๋๋ค์ ์ฃ๋ค ์๋ก ๋นผ๋ค ๋ฎ์๊ณ ํ๋ฆฐ ์ฝ๋๋ ์๋ก ๋ถ์ฌ ๋ฃ์ผ๋ฉด์ ํฌ๋กค๋ฌ๋ฅผ ๋ง๋ค์ด ๋ณด๋ผ๊ณ ๋ ๋ คํ๊ณ ์๋ค. ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ๋ ๊ฐ์ง๋ง ๊ผฝ์ ๋ณด๊ฒ ๋ค.
์น ํฌ๋กค๋ฌ๋ฅผ ๋จ์ํ ์ธํฐ๋ท ์ฅ๋๊ฐ ์ ๋๋ก ์๊ฐํ๋ ์ฌ๋๋ค์ด ๋ง๋ค. ๋๋ง์ ์ฝ๋๋ก ๋๋ง์ ์๋ฆผ ๋ก๋ด์ ์ ์ํ๊ณ ์๊ฐํ๋ ์ ๋์ ๊ทธ์น๋ ๋ธ๋ก๊ทธ ๊ธ๋ค์ด ๋๋ฌด๋๋ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค. 'ํฌ๋กค๋ฌ' ๋๋ '์น ํ๋ก ํฐ์ด'๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฒ์ ์ค๋ซ๋์ ์ฐ๊ตฌ๋ ์ฃผ์ ๊ณ ์ด๋ป๊ฒ ํ๋ฉด www์ ์์ฒ ์๋ฐฑ๋ง๊ฐ์ ์น ํ์ด์ง๋ค์ ์ ์์ง ํ ์ ์์๊น์ ๋ํ ๊ณ ๋ฏผ์ด๋ค.
๋ด๊ฐ ์น ์ปจํ ์ธ ํฌ๋กค๋ง์ผ๋ก ๋ฐ์ฌ ํ์๋ผ๋ ๋ฐ์ ๊ฒ๋ ์๋๋ผ ๊ฐํ ๋งํ๋ ๊ฐ์ธ์ ๋ถ๊ณผํ์ง๋ง ๋ฌด๋ถ๋ณํ๊ฒ ๊ทธ์ ๊ทธ๋ฐ ์ฝ๋๋ฅผ ์ ๋นํ ๋ธ๋ก๊ทธ์ ์ฌ๋ ค๋๊ณ ํฌ๋กค๋ฌ๋ผ๊ณ ์๊ฐํ๋ ํ์๋ ์ฐธ์ ์ ์์๋ค. ์๋๋ ๊ตฌ๊ธ์์ ํฌ๋กค๋ง์ ๊ฒ์ ํ์ ๋ ๋์ค๋ ํฌ๋กค๋ฌ์ ๊ธฐ๋ณธ๊ณผ ๊ฐ๋ ์ ๋ํ ์ค๋ช ์ด๋ค. ๊ฐ์ฅ ์ฌ๊ฐํ๊ฒ ์๋ชป๋ ๊ฐ๋ ์ ์ ํํ๋ ๊ฒ์๊ธ๋ค์ ๋ชจ์๋ค.
ํฌ๋กค๋ง(crawling) ์ดํด ๋ฐ ๊ธฐ๋ณธ, ํฌ๋กค๋ง(crawling) ์ด๋?
- Web์์ ์กด์ฌํ๋ Contents๋ฅผ ์์งํ๋ ์์
(ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์๋ํ ๊ฐ๋ฅ)
- HTML ํ์ด์ง๋ฅผ ๊ฐ์ ธ์์, HTML/CSS๋ฑ์ ํ์ฑํ๊ณ , ํ์ํ ๋ฐ์ดํฐ๋ง ์ถ์ถํ๋ ๊ธฐ๋ฒ
- Open API(Rest API)๋ฅผ ์ ๊ณตํ๋ ์๋น์ค์ Open API๋ฅผ ํธ์ถํด์, ๋ฐ์ ๋ฐ์ดํฐ ์ค ํ์ํ ๋ฐ์ดํฐ๋ง ์ถ์ถํ๋ ๊ธฐ๋ฒ
- Selenium๋ฑ ๋ธ๋ผ์ฐ์ ๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์กฐ์ํด์, ํ์ํ ๋ฐ์ดํฐ๋ง ์ถ์ถํ๋ ๊ธฐ๋ฒ
Web crawling ?
- web crawling : ์๋์ ์ผ๋ก ํ๋ฉด์ ์๋ data๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ (์ค์๊ฐ ์ฐ๋, ์๋์ผ๋ก ์
๋ฐ์ดํธ ๋จ)
- web scrapping : ์๋ํ X / scrapping ํ๋ ์์ ์์์ ๋ฐ์ดํฐ๋ง ๊ฐ๊ณ ์ค๊ธฐ!
=> ๋ ๊ฐ์ง ๋ชจ๋ ์น ์ฌ์ดํธ๋ฅผ ๋ถ์ํด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๊ณผ์ ์ด๋ค.
ํฌ๋กค๋ฌ์ ๊ฐ๋ ์ ๋ํด์ ์ ๋๋ก ์ค๋ช ํ์ง ๋ชปํ๊ณ ์์ ํ ํ๋ฆฐ ์์ค์ ๋ฌธ์ฅ๋ ๋ณด์ธ๋ค. ํฌ๋กค๋ง์ ๊ฒฐ์ฝ Open API๋ฅผ ์ ๊ณตํ๋ ์๋น์ค๋ฅผ ์ฌ์ฉํด์ ๋ง๋๋ ๊ฒ์ด ์๋๋ค. API๊ฐ ์์ด์ ํฌ๋กค๋ฌ๋ฅผ ๋ชป ๋ง๋ ๋ค๋ฉด ๊ณผ์ฐ SW ์์ง๋์ด๋ผ๊ณ ํ ์ ์๋๊ฐ? ์ ๋ง ํฌ๋กค๋ฌ๋ ์ ๋ ๋์์ด๋ Open API๋ฅผ ์ฌ์ฉํด์ ๋ง๋๋ ๊ฒ์ด๋ผ๊ณ ? ํฌ๋กค๋ฌ๋ ์น ์ฌ์ดํธ๋ฅผ ๋ถ์ํด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๊ณผ์ ๋ ์๋๋ค.
๋ ํฌ๋กค๋ฌ๋ '์ ๋ ๋์์ ์จ์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ ํ๋ ๊ฒ'์ด๋ผ๊ณ ๋ณด๊ธฐ์๋ ์ด๋ ต๋ค.์ ๋ ๋์์ด ์์ผ๋ฉด ์ด์ฉ ๊ฑด๊ฐ? API๊ฐ ์์ผ๋ฉด ์ด์ฉ ๊ฑด๊ฐ? ๊ณง ๋ฐ๋ก BeautifulSoup4๋ฅผ ์ฌ์ฉํด์ CSS ์ ๋ ํ ์ ํ๋ ์ฝ๋๋ฅผ ์ฌ๋ ค ๋์์ ์ค๋งํ๋ค.
๊ฐ์ข ๋ธ๋ก๊ทธ์ ์๊ฐ๋ ํฌ๋กค๋ฌ๋ค์ ๊ทธ๋ฅ ํ ๋ฒ ์คํํ๋ฉด ๋๋๋ http request ์ ๋์ ๋ถ๊ณผํ๋ค. ๊ทธ ๋ ๊ทธ ์๊ฐ์๋ง ๋์ํ๊ณ target ์น ํ์ด์ง์ DOM์ด ์กฐ๊ธ๋ง ๋ณ๊ฒฝ๋์ด๋ ํ์ ๋ชป ์ฐ๋ ๋ณ์ ์ฝ๋๋ก ์ ๋ฝํ๊ณ ๋ง๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ทธ๋ด๊ฒ์ด ๋๋ถ๋ถ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด๊ณ CSS selector๋ฅผ ๋ณต์ฌํ๋ผ๊ณ ์จ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
ํนํ '๋ค์ด๋ฒ ๋ด์ค ํฌ๋กค๋ง' ๋๋ '๋ค์ ๋ด์ค ํฌ๋กค๋ง' ๋ฑ์ผ๋ก ๊ฒ์ํด์ ๋์ค๋ ๊ฒฐ๊ณผ๋ค์ ๊ทธ ์ค ์ต์ ์ด๋ฉฐ ๋ค์ด๋ฒ๋ ๋ค์์ ํ์ด์ง ๊ตฌ์กฐ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ๋๋ฏ๋ก '์น ํฌ๋กค๋ฌ ๋ง๋ค๊ธฐ 2020๋ ์ต์ ' ๋ฐ์์ ๋ธ๋ก๊ทธ ๊ธ์ด ์ค์น๋ ์ด์ ๊ฐ ๋ฐ๋ก ์ด๊ฒ์ด๋ค.
๐ค ๊ทธ๋ผ CSS selector๋ฅผ ์ ์ฐ๊ณ ๋์ฒด ์ค๋์ผ ๋ณธ๋ฌธ ๋ฐ์ดํฐ๋ฅผ ๊ธ์ฃ ?!!
๋ผ๊ณ ์๊ฐ ํ๋ ๊ฐ๋ฐ์๊ฐ ์๋ค๋ฉด ์ง๊ธ ๋น์ฅ ๋๊ฐ๋ฆฌ ๋ฐ๊ณ ๋ํ๊ต๋ก๊ฐ์ ์๊ณ ๋ฆฌ์ฆ ์์ ์ ๋ค์ ๋ฃ๊ณ ์ค๊ธธ ๋ฐ๋๋ค. CSS selector๋ ๋์ถฉ ์๊ฐํด๋ ์ ํ ์ฐ์ํ ๋ฐฉ๋ฒ์ด ์๋๋ค. ๐ DOM based content extraction via text density ์์๋ ์ด๋ป๊ฒ ์นํ์ด์ง์ ๋ณธ๋ฌธ DOM์ ์ฐพ์ ์ ์๋์ง ์๊ฐํด ์ฃผ๊ณ ์๋ค.
๋ค์์ ๊ฐ๋จํ '์น ํฌ๋กค๋ฌ'์ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋ค.
์ผ๋จ Fetcher์ Parser, Frontier ์ธ๊ฐ์ง๊ฐ ๋ณด์ธ๋ค. ๊ณผ์ ์ ์ดํดํ๊ธฐ ์ํด์๋ ๋จผ์ Frontier๋ถํฐ ์์ํ๋ฉด ์ข๋ค. ์ด ๋์ง๋ชฌ Frontier๊ฐ ๋จผ์ ํ์ํ URL์ Fetcher์๊ฒ ๋๊ฒจ ์ฃผ๋ฉด Fetcher๋ ํด๋น ํ์ด์ง์ html ๋ด์ฉ์ ๊ฐ์ ธ์์ Parser์๊ฒ ๋๊ฒจ ์ค๋ค. Parser์์๋ ๋ค๋ฅธ ํ์ดํผ๋งํฌ๋ฅผ ์ฐพ๋๋ค. ๋ณดํต html์ aํ๊ทธ๋ url๋ก ๋ณด์์ง ํ๋ ๊ฒ๋ค์ด๋ค. ์ฌ๊ธฐ์ ์ฐพ์ ์ด URL๋ค์ ๋ค์ ๋ Fetcher๊ฐ ๋ฐฉ๋ฌธํ๊ฒ ๋๋๋ฐ ์ด ๋ ๋ฐฉ๋ฌธ ํ๋ ๊ณณ์ ๋ ๋ฐฉ๋ฌธ ํ๋ฉด ๋ฌดํ loop๊ฐ ๋๋ฏ๋ก Dup URL Elim์์ ์ด๋ฏธ ๋ฐฉ๋ฌธํ URL๊ณผ ์ค๋ณต URL๋ค์ ์ ๊ฑฐํ ์ฑ๋ก ๋์ง๋ชฌ Frontier์๊ฒ ์ ๋ฌ ํด ์ค๋ค.
์ ๊น๋ง! ๊ตฌ๊ตฌ์ ์ ํ๊ฒ ์จ ๋๊ธด ํ์ง๋ง ์ด ๋ชจ๋ ๊ณผ์ ์ ์ฌ์ค ์ฐ๋ฆฌ๊ฐ ์๊ณ ๋ฆฌ์ฆ์์ ๋ฐฐ์ ๋ DFS๋ BFS์ ์๋ฒฝํ๊ฒ ๊ฐ์ ๊ณผ์ ์ด ์๋๊ฐ?. ๋ ์ด์ ๋ฐฉ๋ฌธ ํ์ด์ง๊ฐ ์์ ๋ ๊น์ง URL์ ๊ณ์ํด์ ํ์ํ๋ ๊ฒ์ด๋ค. ๊ทน๋จ์ ์ผ๋ก ๋งํด์ ํฌ๋กค๋ฌ๋ ์๋ ์์ผ๋ ์น, www์ ๋์์ผ๋ก DFS๋๋ BFS๋ฅผ ํ๋ ๊ฒ ๋ฟ์ด๋ค. ๊ทธ๋ ์ง๋ง ์น ์ธ์์ ์๋ ๋์ด์ ํ์์ ํ๋ ๋์ค์๋ ์๋ก์ด URL์ด ์๊ธฐ๊ณ ๋ ํ์ด์ง ๋ด์ฉ์ด ์์ ๋๋ค. ์ด๋ฐ ๊ณผ์ ์ ์ด๋ป๊ฒํ๋ฉด ์ต์ ํ ํ ์ ์์๊น?๋ผ๋ ๊ณ ๋ฏผ ์ญ์ ํฌ๋กค๋ฌ ์ฐ๊ตฌ์ ํ ๋ถ๋ถ์ด๋ค.
๋ฐฉ๋ฌธํ ํ์ด์ง์ '๋ณธ๋ฌธ ๋ด์ฉ'์ด ์ด๋ฏธ ์ ์ ๋ค๋ฅธ ๊ณณ์์ ๋ณธ ๋ด์ฉ์ธ์ง ์๋์ง ํ๋จํ๋ ๋ถ๋ถ์ด๋ค. Doc FP's๋ผ๊ณ ์ ํ๊ฒ์ Document Finger Prints๋ฅผ ์ค์ธ ๊ฒ์ธ๋ฐ FP๋ ์ด๋ค Document์ ๋ด์ฉ์ ๊ตฌ๋ถ ํ ์ ์๋ ๊ณ ์ ํ Hash ๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ข๋ค. ์ด ๋ถ๋ถ ํ๋๋ง ํ๋๋ผ๋ ๊ณต๋ถํ ๋ด์ฉ์ด ์ ๋ง ๋ง๊ณ ๋ฐฉ๋ํด์ ์ฌ๊ธฐ์๋ ์ค๋ช ํ์ง ์๊ณ ๋์ด๊ฐ๋ ค๊ณ ํ๋ค. FP๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ ์ญ์ ์ฌ๋ฌ๊ฐ์ง๊ณ FP๋ก ์ด๋ป๊ฒ '์ค๋ณต ๋ฌธ์'๋ฅผ ๊ฑธ๋ฌ ๋ผ๊น? ๊ณ ๋ฏผํ๋ ๊ฒ๋ ํ๋์ ๋ถ์ผ๋ค. ํ๊ตญ์ด๋ก ์ ๋ฆฌ๊ฐ ๋์ด ์๋ ๋งํฌ๋ฅผ ์๋์ ์ ์ด ๋๋ค. ์์ด๋ก ์์๋ณด๊ณ ์ถ๋ค๋ฉด 'Near Duplicated Document Detection'๋ผ๋ ํค์๋๋ก ๊ฒ์ ํด ๋ณด์.
๐ ๋ฌธ์ ๋จ์๋ก ์ ์ฌ ์ค๋ณต์ ํ๋ณํ๋ ๋ฐฉ๋ฒ
๋ ์ค์ ์ด์ ๋๋ ํฌ๋กค๋ฌ๋ DNS ์๋ฒ๊น์ง ๋ฐ๋ก ๋๊ธฐ๋ ํ๊ธฐ์ ๊ทธ๋ฆผ ์ DNS๋ผ๋ ๊ฒ๋ ๋ณด์ด์ง๋ง DNS๋ ๋ ํ๋์ ํฐ ์ฃผ์ ์ด๋ฏ๋ก ์ด ๊ธ์์ ๋ค๋ฃจ์ง๋ ์๊ฒ ๋ค.
๋ด๊ฐ ํผ์ ๋ง์์ ์ฌ๋ก์กํ์ "์ด๊ฑด ์์ ์ ์ด์ง ์์! ์ด๊ฑด ํฌ๋กค๋ฌ๊ฐ ์๋!"๋ผ๊ณ ์ธ์น๋๊ฒ ์๋๋ผ 1999๋ ์ ์ฐ๋ฆฌ ๋ฉ์์ด Marc Najork๋ผ๋ ์ฌ๋์ด ์ด๋ป๊ฒ ํ์ฅ์ฑ ์๋ ์น ํฌ๋กค๋ฌ๋ฅผ ๋ง๋ค ์ ์๋์ง ์ ๋ช ํ ๋ ผ๋ฌธ์ ์ถ๊ฐ ํ๋ค. ์ด ๋ ผ๋ฌธ์ ์๋ก ์ ๋ณด๋ฉด ์ฌ๋ฐ๋ ๋ง์ด ๋ฑ์ฅ ํ๋ค.
"'ํ์ฅ์ฑ ์๋ ์น ํฌ๋กค๋ฌ'๋ ์น ์๋น์ค์์ ๋งค์ฐ ์ค์ํ ์ปดํฌ๋ํธ์ธ๋ฐ ๊ทธ ํฌ๋กค๋ฌ ๋์์ธ์ ๋ํด์ ์ ์ ๋ฆฝ ๋์ด ์์ง ์๋ค."
Scalable Web crawlers are an important component of many Web services, but their design is not wellโdocumented in the literature
๊ทธ๋ก๋ถํฐ 10๋ ๋ค, Marc Najork๋ MS ์ฐ๊ตฌ์์ ๋ค์ด๊ฐ์ ์๋์ ๊ฐ์ ๋ ผ๋ฌธ์ ๋ ์ผ๋ค. ์๋ก ์ ์ด๋ฐ ๊ธ์ด ์จ ์ ธ ์๋ค.
"์น ํฌ๋กค๋ฌ๋? seed URL์ ์ฃผ๋ฉด ๊ด๋ จ๋ URL์ ์ฐพ์ ๋ด๊ณ , ๊ทธ URL๋ค์์ ๋ ๋ค๋ฅธ ํ์ดํผ ๋งํฌ๋ฅผ ์ฐพ์๋ด๊ณ ๊ณ์ํด์ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ํ์ดํผ ๋งํฌ๋ค์ ๋ค์ด๋ก๋ํ๋ ํ๋ก๊ทธ๋จ์ด๋ค."
A web crawler is a program that, given one or more seed URLs, downloads the web pages associated with these URLs, extracts any hyperlinks contained in them, and recursively continues to download the web pages identified by these hyperlinks.๐ Web Crawler Architecture, MARC NAJORK
Microsoft Research, 2009
๐คฎ ๋ ผ๋ฌธ? ์์ฆ์ Youtube๊ฐ ๋์ธ์ง ๋๊ฐ '๊ธ'์ ์๊ฐ ๋ค์ฌ์ ์ฝ๋? ๊ทธ๋ ๋ค๋ฉด Marc Najork๊ฐ MS ์ธํด์ผ๋ก ๋๋ฌด ํ๋ฉด์ ํ๋ ๋ฐํ ์์์ ๋ณด์. ๋ฐํ๋ฅผ ๋ฃ๋ ์ฌ๋์ด 5๋ช ์ ๋ ๋ฐ์ ์์ด ๋งค์ฐ ์กฐ์ด ํด ๋ณด์ธ๋ค. ์ด๋ป๊ฒ ์๋ฐฑ๋ง๊ฐ์ ํ์ด์ง๋ฅผ ํฌ๋กค๋ง ํ๋๋ก ์ต์ ํ ํ ์ ์๋์ง ๊ธฐ์ด ์ปจ์ ์ ์ ์ ์๋ค.
๐ Atrax, a distributed web crawler
์น ํฌ๋กค๋ง์ ํ์ด์ www๊ฐ ์๊ฒผ์ ๋ ๋ถํฐ ์์ฃผ ์ค๋ซ๋์ ๊ณ ๋ฏผ๋๊ณ ์ฐ๊ตฌ ํด ์จ ์ฃผ์ ์ด๋ค.๐ Web Crawler: A Review๋ผ๋ ๋ ผ๋ฌธ์ 2.1์ ์๋ The History of Web Crawler๋ฅผ ์ฝ์ด ๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค. ์ฌ๋ฐ๋ ๋ด์ฉ๋ค์ด ๋ง๋ค.
"์์ผ๋ก ๋ธ๋ก๊ทธ์ ํฌ๋กค๋ฌ ๋ง๋๋ ๋ฒ์ ์ธ๊ฑฐ ๊ฐ์ผ๋ฉด ์ ์ด๋ ์ด ์ ๋๋ ์๊ณ ์จ๋ผ ์ด ๋จธ์ ๋ฆฌ๋ค์"๋ผ๊ณ ๋งํ๊ณ ์ถ์๊ฑด ์ ๋ ์๋๋ค. ๋ด๊ฐ ํ๊ณ ์ถ์ ๋ง์ ์์ ์ ์ด์ค์ด ๋ ์ค์ด ์ฝ๋ ๋ช ์ค ์จ๋๊ณ 'ํฌ๋กค๋ฌ'๋ฑ์ผ๋ก ์๊ฐํ๋ ๊ผด์ ๋ณด๋ ์์ฃผ ์ ๋ฌผ์ด ๋๋ค๋ ๊ฒ์ด๋ค.
"๋ง์ผํฐ๋ ์ฝ๋ฉ ๋ฐฐ์ฐ๋ ์๋!", "์์ํ์! ๋๋ ์ฝ๋ฉ ํด์ผํ๋ค!" ๋ฐ์์ ์ข๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ํ์ ์น๋ฉด์ ๊ฐ๋ฐ์๋ก ๋ณ์ ํ๋ผ๊ณ ๊ด๊ณ ๋ฅผ ํด ๋๊ณ 1ํ์ฉ ์ฝ๋ ๊ฐ๋ค ๋ฐ์ ๋๊ณ 'ํฌ๋กค๋ฌ ๋ง๋ค๊ธฐ', '๋ฐ์ดํฐ ์์ง ๊ฐ์'๋ก ๋์ ๋ฐ์ ๋จน๋๊ฒ ํ์ค์ด๋ค.
๋๋ ๋๋ ๋ค ๊ฐ์ด ์น ํ์ด์ง๋ฅผ ๊ธ์ด์ ์ฌ๋, ํ ๋ ๊ทธ๋จ ์๋ฆผ ์ฐ๋๊น์ง ํด์ ์ฌ๋ฐ๊ฒ ๋์๋ณด์๋ ๋ง์ ์ ๋๊ฒ ํ๋๋ฐ robots.txt ๋ฃฐ์ ๋ํด์ ์ค๋ช ํ๋ ๋ธ๋ก๊ทธ๋ ์ฌ์ง๊ป ๊ฑฐ์ ๋ณธ์ ์ด ์๋ค. ์น ํ์ด์ง๋ผ๊ณ ํด์ ์๋ฌด๋ ๊ฒ๋ ๊ธ์ด์๋ ์๋๊ณ robot.txt์ ์์ฑ๋ ๋ฃฐ์ ๋ฐ๋ผ ์์ง์ ํด๋ ๋๋ ํ์ด์ง๊ฐ ์๊ณ ์์ง์ ํด์ ์๋๋ ํ์ด์ง๊ฐ ์๋ค. ๊ถ๊ธํ๋ฉด ๊ธ์ผ๋ ค๋ ํ์ด์ง ๋ฃจํธ ๋๋ฉ์ธ์์ /robots.txt์ ๋ค์ด๊ฐ ๋ณด๋๋ก ํ์. ๋ญ ์ง๊ฑฐ๋ฆด ํด๋ ๋๊ณ ๋ญ ์ง๊ฑฐ๋ฆด ํด์ ์๋๋์ง ๊ฐ๊ณกํ ๋ถํํ๋ ๋ด์ฉ์ด ์ฐ์ฌ์ ธ ์๋ค.
https://www.google.com/robots.txt
๊ฐ ์ฌ์ดํธ ๋ณ๋ก ๋ฃจํธ ๊ฒฝ๋ก์ robots.txt์ ๋ก๋ด๋ฃฐ์ด ์ ํ ์์ผ๋ฉฐ 'ํฌ๋กค๋ฌ'๋ฅผ ๋ง๋ ๋ค๋ฉด ์ด ๋ฃฐ์ ๋ฐ๋ผ ์ฃผ๋ ๊ฒ์ด ์ค๋ฆฌ์ ์ด๋ผ ํ ์ ์๋ค. ํฌ๋กค๋ฌ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์๊ฐํ๋ค๋ฉด ์ ์ด๋ ์ด ๋ก๋ด๋ฃฐ์ ๋ํด์ ์ค๋ช ํด ์ค์ผ ํ๋ค.
๊ตฌ๊ธ์ robots.txt๋ฅผ ๊ฒ์์์ง ํฌ๋กค๋ฌ์์ ์ฌ์ดํธ์ ์์ฒญํ ์ ์๊ฑฐ๋ ์์ฒญํ ์ ์๋ ํ์ด์ง ๋๋ ํ์ผ์ ํฌ๋กค๋ฌ์ ์ง์ํ๋ ํ์ผ์ด๋ผ๊ณ ์ ์ํ๊ณ ์๋ค. ๋ฒ์ญ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด์ ์์ฐ์ค๋ฌ์ด ํ๊ตญ์ด๊ฐ ์๋๋ผ ๋ค์ ์ดํดํ๊ธฐ ์ด๋ ค์ด๋ฐ ๋๋ฆ ์ฝ๊ฒ ๋ฒ์ญ ํด ๋ณด๋ฉด ํฌ๋กค๋ฌ๊ฐ ์์ฒญ์ ํด๋ ๋๊ฑฐ๋, ํด์ ์๋๋ ๊ฒฝ๋ก๋ฅผ ์ ์ด ๋ ๊ณณ ์ ๋๊ฐ ๋ ๊ฒ ๊ฐ๋ค. ๊ทธ ์ธ์๋ robots.txt์๋ ๋ช ์ด ๊ฐ๊ฒฉ์ผ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๋๋์ง ๋ฑ ๋ค์ํ ๋ด์ฉ์ ์ ์ ์ ์๋ค.
โ ๏ธ ๋ถ๋ฒ ํฌ๋กค๋ง
ํฌ๋กค๋ง์ผ๋ก ์์งํ ๋ฐ์ดํฐ๋ก ์ด์ต์ ์ทจํ๋ฉด ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค. ๊ฒฝ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ํฌ๋กค๋งํด์ ์คํ ๋จ์ด์ง ๊ฐ๋ฐ์๋ ์๋ค. ์ข๋์ง ์๊ฒ ์กฐ์ฌํด๋ผ. ์๋ ์ฌ๋ก๋ ๋จ์ํ DOM ํ์ฑํด์ ๊ฐ์ ธ๊ฐ๋ ์ ๋๊ฐ ์๋๋ผ ์์ API endpoint๋ฅผ ์กฐ์ง๊ฒ ๋ฌธ์ ๊ธด ํ๋ค.
๐ฐ ๆณ โ์ฌ๊ธฐ์ด๋, ์ผ๋์ ์ ๋ณด ๋ฌด๋จ์์ง ๋ง๋คโ...ๅ ๋ํ โ์ ์ฃโ
๊ทธ๋ฌ๋ ์ง๊ธ๊น์ง๋ ๋ด๊ฐ ๊ตฌ๊ธ์ 'ํฌ๋กค๋ฌ ๋ง๋ค๊ธฐ'๋ก ๊ฒ์ํ์ ๋ robots.txt์ ๋ํด ์ค๋ช ํ๋ ๊ธ์ ์์์์ ๋จ ํ๋๋ ์ฐพ์ ๋ณผ ์ ์๋ค. 19๋ ๋์ ์ธํฐ๋ท ํ์คํ ๊ธฐ๊ตฌ์ ๋ฉ๋ชจ์ robots.txt๊ฐ ์ฌ์ค์ ์น ํฌ๋กค๋ง์ ํ์ค์ด ๋์ด๊ฐ๊ณ ์๋ค๊ณ ์ฐ์ฌ์ ธ ์๋ค. ์ด๊ฒ๋ ๊ตฌ๊ธ์ด ์ ์ถํ ๋ฌธ์๊ธด ํ๋ฐ ์ฌ๋ฐ๊ฒ ์ฝ์ด ๋ณผ๋ง ํ๋ค. ๐ Robots Exclusion Protocol
์น ํฌ๋กค๋ฌ๋ฅผ ๋ง๋ค ์ ์๋ ์คํ ์์ค๋ค์ ์๊ธฐ๋ค ํ๋ ์์ํฌ์ ๊ธฐ๋ฅ ์ค ํ๋๋ก 'robot.txt๋ฅผ ์ค์ํฉ๋๋ค.'๋ผ๊ณ ์๊ฐํ๊ณ ์๋ค. ์ด ์คํ ์์ค ํฌ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ๋ฉด robot.txt๋ฅผ ์ค์ํ ์ ์๊ฒ ๋๋ค๊ณ ๊ด๊ณ ํ๋ ์ ์ด๋ค. ์ด ๋ถ๋ถ์ ๋ํด์ ์ฐ๋ฆฌ๋ ํ ๋ฒ ์๊ฐ ํด ๋ณผ ํ์๊ฐ ์๋ค. ๐ gocolly๋ผ๋ ์น ํฌ๋กค๋ฌ ์คํ์์ค์ ๊ธฐ๋ฅ ์๊ฐ์๋ robots.txt support๋ผ๊ณ ์ ์ด ๋ ๋ถ๋ถ์ ์ฃผ๋ชฉํ์
๋ Pinterest์ ๊ฒฝ์ฐ ์์ฌ์ ํฌ๋กค๋ฌ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง, ์ด๋ค User Agent๋ฅผ ๊ฐ๊ณ ์๊ณ ์ด๋ค IP ๋์ญ์ ์ฌ์ฉํ๋์ง ๊ณต๊ฐํ๊ณ ์๋ค. ์ด ์์ค์ ๊ตญ๋ด ๋ธ๋ก๊ทธ, ์ปค๋ฎค๋ํฐ์ ์ด๋ค ๊ธ๋ ํฌ๋กค๋ฌ์ robots.txt์ ๋ํด ์ค๋ช ํ์ง ์๊ณ ์๋ค๋ ์ ์ ๋ฐ๋์ ์ง๊ณ ๋์ด ๊ฐ์ผ ํ ๋ฌธ์ ๋ค.
๐ Pinterest crawler
ํฌ๋กค๋ฌ๊ฐ ์๋๋ผ ๋ญ ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ๋ค ๋ถ์ด๊ธฐ๋ผ๋ ํ์ ๋ง์ด๋? ๊ทธ๋ฐ ๋์ ์๋ค. ๊ฐ๋ฐ์๋ค์ ์ ํ์ ์ธ ๋ง ์ค ํ๋์ธ๋ฐ "๋ฌธ์ ๋ฅผ ์ง์ ํ๋ ค๋ฉด ๋์์ ๊ฐ๊ณ ์ค์ธ์"๋ค. ํ์ฌ ์ํ์ ํ๋ฉด '์ง์ง ๋ค๋ฐฉ๋ฉด์ผ๋ก ํ๋ฅญํ ํด๊ฒฐ์ฑ '์ ๋ง๋ จํ์ง ์์ผ๋ฉด ํ์์์ ์ฐ์๋ฆฌ๋ ํ์ง ์๋ ๊ฒ์ด ๊ท๋ฒ์ด๋ค.
๋ด๊ฐ ๋ฌด์จ ํฌ๋กค๋ง ํ๊ณ์์ ์ ๋ช ํ ๋ฐ์ฌ๋ ๊ต์๋ ์๋๊ณ ์ฉ์ด ๊ฐ์ง๊ณ ๊ฑฐ๋ค๋จน ๊ฑฐ๋ฆด ์ ์๋ค. ๋ด๊ฐ ํ๊ณ ํ ๋ง์ ๋จ์ง 'ํฌ๋กค๋ฌ'๋ ์๋นํ ์ค๋ซ๋์ ์ฐ๊ตฌ๋ ์ฃผ์ ๊ณ ์ธ์ ๊น์ง๊ณ scrapy๋ ์ฐ๋ฉด์ '2019 ๋ค์ ๋ด์ค ํฌ๋กค๋ง', '2020 ๋ค์ ๋ด์ค ํฌ๋กค๋ง'... ๊ฐ์ ๊ธ์ ํ์ ์์กด ํ ์๋ ์๋ค๋ ๊ฒ๊ณผ ์๋ชป๋ ํฌ๋กค๋ฌ์ ๊ฐ๋ ์ด ์ธํฐ๋ท ๊ณณ๊ณณ์ ํผ์ง๋ ๊ฑธ ๋ง์๋ ๊ฒ์ด๋ค.
'ํฌ๋กค๋ฌ๋ ์ ๋ ๋์์ผ๋ก ํ์ด์ง ๊ธ๋๊ฒ'์ผ๋ก ์๋ชป๋ ๊ฐ๋ ์ด ์ธํฐ๋ท์ ๋ ๋์ ๋ค๋๋๊ฑธ SW ๊ฐ๋ฐ์๋ก์ ์ ๋ซ๊ณ ์ง์ผ๋ณด๊ธฐ์ ๋๋ ๋๋ฌด๋๋ ์ง๋ ํ ๊ณต๋์์ด๋ค.
A crawlerโs purpose is to follow links to reach numerous pages and analyze their meta data and content.
Scraping is possible out of the web. For example you can retrieve some information from a database. Scraping is pulling data from the web or a database.
๐ ์น ํฌ๋กค๋ฌ
๊ทธ๋ ๋ค๊ณ ํฌ๋กค๋ฌ ๊ด๋ จํด์ ์ค๋ช
ํ ๊ธ์ด ์ ํ ์๋ ๊ฑด ์๋๋ค. ์ ์ค๋ช
ํ๋ค๊ณ ์๊ฐํ๋ ๊ธ์ด๋ค.
๐ ๋ก๋ด ๋ฉํ ํ๊ทธ, data-nosnippet ๋ฐ X-Robots-Tag ์ฌ์
๊ตฌ๊ธ์ ์น ํฌ๋กค๋ฌ๊ฐ ๋์ ๋ธ๋ก๊ทธ๋ ์ฝํ
์ธ ๋ฅผ ์์งํ์ง ๋ชปํ๋๋ก ์ ํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ค๋ช
ํ๊ณ ์๋ค. robots.txt์ ์ฐ์ฅ์ ์ด๋ค.
๐ Marc Najork, Research Engineering Director in Google Research
๊ธ ์ค๊ฐ์ ์๊ฐ ํ๋ ๋ฉ์์ด Marc Najork๋ ์ด์ ๊ตฌ๊ธ ๋ฆฌ์์น์์ ๊ทผ๋ฌดํ๊ณ ์๋ค. ๊ฒ์๊ณผ ํฌ๋กค๋ง์ ๊ด์ฌ์ด ์๋ค๋ฉด ์์ฃผ ์ฌ๋ฏธ์๊ฒ ์ฝ์ ์ ์๋ ๋
ผ๋ฌธ๋ค์ด ๋ง๋ค. ๋ด ๋ณ์ ๊ฐ์ ๊ธ ๋ณด๋ค ์ด ๋ฐ์ฌ์ Abstraction ํ ๋ฌธ๋จ์ด ์ฌ๋ฌ๋ถ์๊ฒ ํจ์ฌ ๊ฐ์ง๊ณ ์ธ์์ ๋์์ด ๋๋๊น ๊ผญ ๋ด๋ผ. ์์ฆ์ ๋ญํน์ ์ฐ๊ตฌํ๋ ๋ชจ์์ด๋ค.
๐ Google ๊ฒ์์ ์๋ฆฌ | ํฌ๋กค๋ง ๋ฐ ์์ธ ์์ฑ
์๊ฐ ์๊ณ ๋นจ๋ฆฌ IR๊ณผ ํฌ๋กค๋ฌ์ ๊ฐ๋
๋ ๋ค ์ดํดํ๊ณ ์ถ์ ์ฌ๋์๊ฒ ๊ฐ๋ ฅ ์ถ์ฒํ๋ ๊ธ์ด๋ค. ๊ตฌ๊ธ์์ ์ค๋ช
ํด์ฃผ๋ ๊ฒ์์ ์๋ฆฌ์ด๋ค. ๊ฒ์ ํ๋ก์ธ์ค ์ ์ฒด๋ฅผ ์ญ ๋๋ฌ ๋ณด๊ธฐ์ ์์ผ๊ฐ ํ ๋์ด ์ง ๊ฒ์ด๋ค.
๐ก "๋ญ ์ ๋๋ก ์ค๋ช ํ ๊ฒ๋ ์๋๋ฐ ๋ ผ๋ฌธ ๋งํฌ๋ง ๋ ๋ค ๋ฐ์ ๋์ผ๋ฉด ๋ก์ด๋?"
๋ฏธ์ํ๊ฒ ์๊ฐํฉ๋๋ค. ๋๋ ์ฌ๊น๋๊ฑฐ ๋ค ๋ณด์ง ์์๊ณ ์์ฆ๋ ์ฝ์ด๊ฐ๋ ์ค์ด๋ผ ๊ธฐํ๊ฐ ๋๋ฉด ์ ๋ฆฌ๋ฅผ ํด ๋ณด๋ ค๊ณ ํฉ๋๋ค... ์ง์ง ๊ด์ฌ ์๋ ์ฌ๋ ์์ผ๋ฉด ๋๊ธ๋ก ๋ญ๋ผ๋ ๋จ๊ธฐ๋ฉด ์์๋ฅผ ๋ด์ ๊ธ์ ์ฐ๊ฒ ์ต๋๋ค.
๋ค์ ๊ธ ์ฐ์ฌ๋ฅผ ์ํด ์ง์ํ๊ณ ์ถ์ ๋ถ๋ค์ ์์ ๋กญ๊ฒ ๋๋ค์ด์ ํด ์ฃผ์ธ์. ๊ธฐ๋ถํ์ ๋์ ๋ชจ๋น์ผ์ ์ฌ๋ฆฌ์ฌ์์ ์ฑ์ฐ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์ก๊ธํ์ค ๋ ๋ฉ์ธ์ง์ ์ด๋ค ๊ธ์ ๋ณด์๋์ง ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฒ์๊ธ์ ๋ฐ์ ๋ฉ๋๋ค. ๊ธฐ๋ถํ์ ๋์ ์ฌ๋ฆฌ์ฌ์์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
๊ธ ์ ์ฝ์์ต๋๋ค! ๋๋ฆ ํฌ๋กค๋ฌ๋ฅผ ํ์ฉํ์ฌ ํธ๋ฆฌํ๊ฒ ์ด์ฉํ๊ณ ์์๋๋ฐ, ๊ทธ ๊ทผ๊ฐ๋ถํฐ ํฉํธ ํญํ๋นํ ๋๋์ด๋ค์. ์ฐจ๊ทผ์ฐจ๊ทผ ์ฌ๋ ค์ค ๋งํฌ๋ค ์ฝ์ด๋ด์ผ๊ฒ ์ต๋๋ค!
๊ฐ์ฌํฉ๋๋ค.
์ด๋ฒ์๋ ํํธ ์๋๋ฅด๊ณ ๊ฐ ์๊ฐ ์๋ค์. ๋งค๋ฒ ์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค :)
์ผ๋ง์ ์ ๊ธฐ๋ถ์ ํ ํ ๊ฒธ ํฌ๋กค๋ง์ ํด๋ดค๋๋ฐ ์๊ฐ๋ณด๋ค ๋ณ๊ฑฐ ์์ด์ ์ค์ ํ๋๋ฐ ์ฐ ํฌ๋กค๋ง์ ์ ํ ๊ทธ๋ ์ง ์๊ตฐ์ ใ ใ ๊ทธ๋๋ ์ฅ๋๊ฐ ๊ฐ์ง๊ณ ๋๋ฏ์ด ํ๊ธฐ์๋ ์ฌ๋ฐ์์ด์! ์ธ์ ๊ฐ ํฌ๋กค๋ง์ ๋ ํ๋ณด๊ณ ์ถ๊ฒ ๋๋ค๋ฉด ๊ณต์ ํด์ฃผ์ ๋งํฌ ์ฐพ์๊ฐ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๋ฐ๋ ๊ธ ๊ฐ์ฌํด์
์ ์๋ ๋ค์ ์ ๋ฌธ๊ธฐ์ฌ JSON ๋ฐ์์ค๋๊ฑฐ (์ง๊ธ์ ์๋ณด์ด๋๊ฑฐ ๊ฐ์๋ฐ) ๊ฐ์ด ์๋ฒ์ธก์์ ๋ฟ๋ฆฌ๋ JSON ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋๊ฒ๋ ํฌ๋กค๋ง์ด๋ผ๊ณ ํ ์ ์๋์? ๋จ์ด๊ฐ ๋ชจํธํ๊ฒ ๊ฐ์ ํท๊ฐ๋ฆฝ๋๋ค ใ
ํ... ํฌ๋กค๋ง ๊ด๋ จ ๊ธ ์์ฑํ๊ธฐ ์ ์ธ๋ฐ, ๊น์๋ด์ฉ ๋ฐฐ์๊ฐ๋๋ค... ( _ _)
ํ์ฑํด์ ๊ฐ์ ธ๊ฐ๋ ์ ๋๊ฐ ์๋๋ผ ์์ API ednpoint๋ฅผ ์กฐ์ง๊ฒ ๋ฌธ์ ๊ธด ํ๋ค.
endpoint ์คํ์ธ๊ฒ ๊ฐ์์!
์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค ๐
์ด ๊ธ์ ๋ณด๊ณ Beautiful Soup์ผ๋ก ๋ค์ด๋ฒ ๊ฒ์์ด "ํฌ๋กค๋ง" ํ๋ฌ ๊ฐ๋๋ค. HTML ๋ค๋ค์ก๋ค ^_^
๊ทธ ๊ธ๋ค์ ๋ชฉํ๋ 'ํฌ๋กค๋ฌ ์ ๋ฌธ' ์ ๋์ ๋์์ค๊ฐ ์๋๊ฐ ์๊ฐํฉ๋๋ค. ๋ฌผ๋ก ๊ฒ์ ๊ฒฐ๊ณผ์์ ๋ช ๋ฒ ๋ฐ์ธ ํ๋ก ๋๋ ํ๊ธ ๋ธ๋ก๊ทธ์ ๋ค์ด๊ฐ ๋ณธ ์ ์ด ์๋ค์ใ ใ ใ ใ .. ์ ๋ ์ ๋ ๋๊ณผ bs4๋ก ๋ง๋ ๋ฌด์ธ๊ฐ์ 'ํฌ๋กค๋ฌ' ๋ผ๊ณ ์ด๋ฆ์ ๋ถ์ฌ๋ณธ ์ ์ด ์์ด์ ๋์ฑ๋ ๊ณต๊ฐ์ด ๋ฉ๋๋ค. ๋๋ค์ ํฌ๋กค๋ฌ์ ์ด๋ฆ์ ๋ฌ๊ณ ์๋ ์คํฌ๋ฆฝํธ ๋ค์ ์ฌ์ค ๋ณ๋ํ์๊ธฐ๋ ์๋ํ ์ ๋์ ์ด๋ฆ์ด ์ ๋นํ์ง์.
์๋
ํ์ธ์! ๊ธ์ ๋๋ฌด ์ฌ๋ฐ๊ฒ ์ฐ์
์ ์ญ์ฃผํ ํ๋ค๊ฐ ์ด ํฌ์คํธ๊น์ง ์ฝ๊ฒ ๋๋ค์:)
์ ๋ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๊ธฐํ์ ์์ฃผ ํด์ bs์ selenium์ ํ์ฉํ ์คํฌ๋ํผ(์ ๋ ์ด๋ ๊ฒ ์นญํ๊ณ ์์ต๋๋ค!)๋ฅผ ๋ง์ด ์ง๋๋ฐ, ์ต๊ทผ์ ์คํฌ๋ํผ์ ํ๊ณ๋ฅผ ๋๋ผ๋ ์ฐจ์ ์ด ๊ธ์ ์ฝ์ด๋ณด๋ ๊ดํ ํฌ๋กค๋ง์ ๋ํ ์์ฌ๊น์ง ์๊ฒผ์ต๋๋ค.๐ ํฌ๋กค๋ฌ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ฉด ๋๋ถ๋ถ http request์ ๊ด๋ จ๋ ๋ด์ฉ๋ง ๋์ค๋๋ฐ(์ฌ์ง์ด ์ฑ
์์๋!), ํน์ ํฌ๋กค๋ง์ ๊ณต๋ถํ๋๋ฐ ๊ด์ฐฎ์ ์ฌ์ดํธ๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์ถ์ฒํด์ฃผ์ค ์ ์์๊น์?
์ต๊ทผ์ ๋น์ทํ ๋ง์ ๋ค์๋๋ฐ ๊ทธ๋ ๊ทธ๋ฅ ํ์ํ ๋ฐ์ดํฐ๋ง ์ป์ด์ค๋ฉด ๋์ง ์๋๋ ์์ผ๋ก ๋ฐ์์ณค๋๋ฐ ๋ฐ์ฑํ๊ฒ ๋๋ค์
์.. ํฌ๋กค๋ฌ๋์๊ณ selenium์ผ๋ก automationํด์ ์ ๋ณด ๊ธ์ด์ค๋ ์ฝ๋ ์์ฑ์ค์ธ๋ฐ ํฌ๋กค๋ฌ๋ผ๊ณ ๋ถ๋ฅด๋ฉด ์๋๊ฒ ๋ด์
์ด ๊ธ์ ์ฝ๊ณ ๋ฒจ๋ก๊ทธ ๊ฐ์ ํ์ต๋๋ค. ๋ชจ๋น์ผ๋ ์ฌ๋ํด์โฅ ์์ผ๋ก๋ ๊ธ ๋ง์ด ์ฌ๋ ค์ฃผ์ธ์~
๊ธ ์ ์ฝ์์ต๋๋ค. ๊ทธ๋ผ ์นํ์ด์ง ํน์ ์นผ๋ผ์( ์๋ก๋ค์ด ์ํ์ ๋ช
๊ณผ ๊ฐ๊ฒฉ๋ง ๊ฐ์ ธ์ค๊ณ ์ถ์๋)
DOM based content extraction via text density ์ ๋
ผ๋ฌธ์ ์ํ๋ฉด ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฑด๊ฐ์? ์นํ์ด์ง์์ ๊ธ์ด์ฌ๋งํ ๊ฒ๋ค์ ๋ค ๊ฐ์ ธ์ค๋ ๊ฐ๋
์ ์ด๋์ ๋ ์ดํด๊ฐ๋๋ฐ ํน์ ์ฃผ์ ๊ด๋ จ๋ ๋ด์ฉ์ ์ด๋ป๊ฒ ๊ฐ์ ธ์ค๋์ง ๊ถ๊ธํ๋ค์ ๊ธ๋ง ๋ด์๋ ์ดํด๊ฐ ์๊ฐ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค!
์นํฌ๋กค๋ง์ ๋ํด ์ต๊ทผ์ ๊ด์ฌ์ด ์๊ธด 1์ธ์ ๋๋ค. ์ข์ ๊ธ ์ ์ฝ์์ต๋๋ค. :-) ์ถํ์ ๊ถ๊ธํ์ ์ ์ฌ์ญค๋ด๋ ์ค๋ก๊ฐ ์๋ ์ง...๋ชจ๋ฅด๊ฒ ๋ค์.
ํฌ๋กค๋ง์ ๋ํด์ ์ ์ฝ๊ณ ๊ฐ๋๋ค. ์ ๋ง ๊ธ์ ์ฌ๋ฏธ์๊ฒ ์ฐ์๊ณ ์ ์ตํ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
ํฌ๋กค๋ฌ๋ก ๋จน๊ณ ์ฌ๋๋ฐ์. ๋ณธ๋ฌธ์ด ๋ฌด์์ ๋งํ๊ณ ์ ํ๋๊ฑด์ง ์๊ฒ ๋๋ฐ..ํ ...
๋ณธ๋ฌธ์ ์๋ ์นํฌ๋กค๋ฌ๋ ๊ฒ์์ ์ํ ํฌ๋กค๋ฌ์ ๊ฐ๊น๊ณ ์ฌ์ค ๊ฒ์์ ์ฐ๋ ค๊ณ ์ผ๋ฐ์ธ ๋๊ฐ ํฌ๋กค๋ง์ ํ๊ฒ ์ด์. ๊ทธ๋์ ๋ด์ค ๋๊ธ ๊ธ๊ธฐ ์ด๋ฐ๋ฅ์ ๋ธ๋ก๊ทธ์ ๋์๋ค๋๋ ํ๊ฒํ ๋ ์ ๋ ๋์ ์๋ฏธ๋ก ํฌ๋กค๋ฌ๋ผ๊ณ ์๊ฐํ๋ ํธ์ด์ฌ์์. ์ด์ ์คํฌ๋ํ์ด๋ ํฌ๋กค๋ง ๊ฐ๋ ์ ๋ชจํธํ ์ถ์ธ๋ผ..
์ฐธ๊ณ ๋ก ์น ๊ฒ์ ๊ด๋ จํด์ ์ฐ์๋ ค๊ณ ํ์ จ๋ค๋ฉด, ๋ง์ง๋ง์ ํฌ๋กค๋ง ๊ฐ๋ฅ ์ฌ๋ถ์ ๋ํ ๊ฒ์ robots.txt ๋ฟ๋ง ์๋๋ผ meta ํ๊ทธ์ nofollow ๋ ๋ด์ผ ํฉ๋๋ค.
์ ๋ณด๊ณ ๊ฐ๋๋ค. ํํธ ๋๋ฅด๋ ค๊ณ ๊ฐ์ ํ๊ณ ์ง๋๊ฐ๋ค์ ใ ใ
์ ๋ ํฌ๋กค๋ง์ด๋ผ๊ณ ํ๋ฉด ๋จ์ํ ์น๋ฌธ์๋ฅผ ํ์ฑํด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธ์ด์ค๋ ์ ๋๋ก ์๊ณ ์์๋๋ฐ ์๊ฐ๋ณด๋ค ๊น๊ณ ๋ฐฉ๋ํ ๊ฐ๋ ์ด์๊ตฐ์. robots.txt์ ๋ํด์๋ ์ฒ์ ์๊ฒ ๋์๋๋ฐ ๋ค์ด๋ฒ์์๋ ์ ๊ณต์ ํ๊ณ ์์๋ค์. ๋ชฐ๋๋ ๊ฑธ ๋ง์ด ์์๊ฐ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ํํ ํฌ๋กค๋ฌ์ ์ฐฉ๊ฐํ๋ ๋๊ตฌ๊ฐ ์คํฌ๋ํผ์ธ๊ฑด๊ฐ์??
๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ์ ๋ถ๋ค์ด ๋ค ํ ๋ฅด๋ฐ์ฆ๊ธ ํ๋ก๊ทธ๋๋จธ๋ผ์ ๊ธ์ ์ฌ๋ฆฌ๋๊ฒ ์๋๋ผ ๋ฏธ์ํ๋๋ก ๋ฐฐ์ด ๊ฑธ ์๊ธฐ ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๋๊ฑฐ ์๋๊น์? ๋ถ๋ช ํ ํฌ๋กค๋ง์ ์์์ด๋ผ๊ณ ํ ์ ์๋ค๊ณ ๋ด ๋๋ค.
๋ง์ํ์ ๋๋ก ๋ธ๋ก๊ทธ ํฌ๋กค๋ฌ ๋ฐ๋ผํ๋ค ํ์ด์ง๊ฐ ์กฐ๊ธ๋ง ๋ฐ๋์ด๋ ์๋๋ค? ๊ทธ๋ผ ์ด๋ป๊ฒํ์ง? ํ๋ฉด์ ๋ฐ์ ํ ์ ์๊ณ ์.
๊ธ์ด๋ถ์ ๋ง์ ๊ต์ฅํ ์ค๋งํ๊ฒ ๋ค๋ฆฝ๋๋ค. ๊ธ์ฐ๊ธฐ์ ๋๊ฐ๊ฐ ์ด ๊ธ์ ๋ณด๊ณ ๋ฌธ๋ฒ, ์ด๋ฒ๋ ์ ๋ง๋ ๋น๋ฌธํฌ์ฑ์ด๋ฅผ ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๋๊ณ ์ฐธ๊ฒฌํ๋ ๊ฒ์ฒ๋ผ์.
์์์ ๋๊ตฌ๋ ๋ฏธ์ฝํ๊ณ ๋ฏธ์ํฉ๋๋ค. ๊ธ ๋ด์ฉ์๋ ๊ณต๊ฐํ์ง๋ง ์๊ธฐํ์ ๋๋ก ๋ถ์พํ๋ค์. ์์ค์ด ์๋๋ผ ๊ธ์ด๋ถ์ ์๊ฐ์ด์.
๊ทธ๋์ ์ ๋ ๊ฐ๋นก์ณ์ ์๋ง๊ฑด ์์ญ๋ง๊ฑด ์คํฌ๋ํํ ๋ sns๋ ๋ค์ด๋ฒ ์ผํ๋ชฐ ๋ชฉ๋ก์ฒ๋ผ ๋ฐ์ํ ์นํฌ๋กค๋งํ ๋ api๋ request ์๋ถ๋ฅด๊ณ driver๋ก ๊ณ ์ ํ์ํ ๋ณ๋ ฌ์ฒ๋ฆฌ๋ก ๋น ๋ฅด๊ฒ ์ฐ์ฐ์ฒ๋ฆฌ์ํต๋๋ค.. ์๊ฐ๋ณด๋ค ํฌ๋กค๋ง์ ๊ธฐ์ด๋ง ํ์๊ฑฐ์ง ์ฌ๋๋ค์ด ๊น์ด์๊ฒ ์คํฌ๋ํํ๋ ์ฝ๋๋ ์๋๊ฑฐ ๊ฐ๋ค์.. ํฌ๋กค๋งํ๊ณ ์คํฌ๋ํ์ด ๊ฒฐ์ฝ ์ฌ์ด ๋ถ์ผ๊ฐ ์๋๋ .. ์ฐฉ๊ฐ๋ค ๋ง์ดํ์๋๋ฏ ใ ใ ใ ใ
์๋ ํ์ธ์! ๊ธ ์ ์ฝ์์ต๋๋ค. ์ด๋ฒ์ ๋ง ํฌ๋กค๋ง์ ์ ๋ฌธํด์ ๋์ ํด ๋ณด๋ ค๊ณ ํ๋๋ฐ, ๋ฑ ์ด ๊ธ์ ๋ฐ๊ฒฌํ๋ค์. ์คํฌ๋ํ์ด ์๋ ํฌ๋กค๋ง์ ์ฐ๊ตฌํด ๋ณด๊ณ ์ถ์๋ฐ, ํน์ ๊ด์ฐฎ์ ํํ ๋ฆฌ์ผ์ ์ ์ ์์๊น์? ์ฌ๋งํ ํฌ์คํธ๋ค์ ๋ค ์ ๋ฆฌ๋์ ํน์ BS๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์์!
์ง์งํ๊ฒ ์ฝ๊ณ ์๋ค๊ฐ ๋์ง๋ชฌ ํ๋ก ํฐ์ด ๋์ค๋ ์๊ฐ ์ง์ค ๊นจ์ ธ 10๋ถ ์ฌ์์ต๋๋ค.
๋ง์ฐํ๊ฒ ์ธํฐ๋ท์ผ๋ก "์คํฌ๋ํ"์ ๋ฐฐ์ด ์
์ฅ์์ ์ด๋ฐ ๋ฐฉ๋ํ ์ ๋ณด๊ฐ ์กด์ฌํ๋์ง ๋ชฐ๋์๋ค์..! ๊ทธ๋์ ๋ฐ๋ผํ๋ฉด์ ๋ธ๋ก๊ทธ์ ํฌ์คํ
ํ๊ฒ๋ ์์ ํด์ผ๊ฒ ์ด์!
๋จ๋ฐ์ฑ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๊ด์ ์ด๋ผ๋ฉด "์คํฌ๋ํ"์ด ์ข์์ง ๋ชจ๋ฅด๊ฒ ์ผ๋ ์ฅ๊ธฐ์ ์ธ ๊ด์ ์์๋ ๊น์ด์๋ ํ๊ตฌ๊ฐ ํ์ํ๋จ ์๊ฐ์ด ๋๋ค์.
์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค.
์ ๋ ๊ทธ๋ฐ ๊ธ์ ์์ฑํ ์ฌ๋ ์ค ํ๋ช ์ด์ด์ ๋ถ๋๋ฝ๋ค์. ๋ฌผ๋ก ๊ณต๋ถํ๋๊ฑธ ๊ธฐ๋กํ๊ธฐ ์ํ ๋ธ๋ก๊ทธ์๋ค๊ณคํ์ง๋ง ์ด๋ฐ ๋ฐฐ๊ฒฝ๋ค์ ์๊ณ ์ฐ๋๊ฒ๊ณผ ๋ชจ๋ฅด๊ณ ์ฐ๋๊ฒ์ ๋ถ๋ช ๋ค๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๊ธ ๋ค์ pypi์ bs4๋ฅผ ๊ฐ๋ณด๋ ๋ถ๋ช 'makes it easy to scrape information from web pages.' ๋ผ๊ณ ์ค๋ช ์ด ๋์ด์๋ค์. ์ข์ ๊ธ ์ฝ๊ณ ๋ธ๋ก๊ทธ ๊ธ ์กฐ๊ธ์ด๋ง ์์ ํ๋ฌ ๊ฐ๋ด ๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
์๋ฒฝ์ ์ ์ด ์ ์ velog๋ฅผ ์ฝ๊ณ ์๋ ์ค ๋ณด์๊ฐ์ ํฌ์คํ ์ ์ฐพ์๋ค์! ์ ๋ ๊ทธ ์๋ง์ ๋ธ๋ก๊ทธ ํฌ์คํ ์ค ํ๋๋ฅผ ๋ฐ๋ผํ์ฌ ํฌ๋กค๋ฌ๋ฅผ ๋ง๋ค๊น ์๊ฐํ๋ ์ค ๊ทธ๊ฒ๋ค์ด (์ง์ ํ) ํฌ๋กค๋ฌ๊ฐ ์๋์์์ ๊นจ๋ซ๊ณ ๊ฐ๋๋ค!
๋๋ฌด ์ข์ ๊ธ ์ ์ฝ๊ณ ๊ฐ๋๋ค.
์ ๋ bs4๋ก ์คํฌ๋ํํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ ์ ์ด ์๋๋ฐ์.
์ด๋ฏธ ๋ถ๋ฒ์ผ๋ก ๋งํ ๋ฐ์์ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๋ ์ฌ์ดํธ๊ฐ ์๊ณ , ๊ทธ ์ฌ์ดํธ๋ฅผ ์คํฌ๋ํํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด์ ๊ณต์ ํ๋ ๊ฒ์ ์๋ฒ์ผ๊น์?
์ ๊ฐ์ธ ์ทจ๋ฏธ๋ก ๋ง๋ ๊ฒ ์ธ๋ฐ, ํน์๋ ํด์ ์ธ๋ถ์ ๊ณต์ ๋ ์ํ๊ณ ์์ต๋๋ค.
์๊ด์ด ์๋ค๋ฉด github์ ๋์ ์ฌ๋ฆฌ๋ ค๊ณ ์๊ฐํ๊ณ ์๋๋ฐ, ์๊ฒฌ ์ฃผ์ค ์ ์์๊น์?
์ง์ง ์๊ธด ๋ถ... ํ ์ด ํ๋ก์ ํธ์ ๋ฐ์ดํฐ ์์ง ํ์ํด์ ์ด๊ฒ์ ๊ฒ ์ฐพ๋ ์ค์ด์๋๋ฐ ์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค :)
ํฌ๋กค๋ง์๋ํด์ ๊ณต๋ถํ๋ ค๊ณ ๊ฒ์ํ๋ค ๋ณด๊ฒ ๋์์ต๋๋ค. ์ ๋ง ์ข์ ๊ธ ์ด๋ค์. ๋งํฌ ๊ฑธ์ด์ฃผ์ ๊ฒ๋ค๋ ์๊ฐ ๋ ๋ ์ฝ์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋๋ถ์ ์ ์น ์ฌ์ดํธ์์ ํฌ๋กค๋ง๋ถ๋ถ์ด ์๊ฐ์ด ์ง๋ ์ ๋จนํต์ด ๋๋์ง ์๊ฒ ๋์์ต๋๋ค. ๊ธ ์์ฑ์๋๊ป์ ๋ง์ํ์ ๋์ถฉ ๋ธ๋ก๊ทธ ์ฝ๋ ์ฐธ๊ณ ํด์ ๊ธ์ด์์ ๊ทธ๋ฐ๊ฒ ๊ฐ๋ค์. ๊ฐ์ฌํฉ๋๋ค.
์ข์๊ธ ๊ฐ์ฌํฉ๋๋ค ๐
ํฌ๋กค๋ง์ ๊ดํด์ "ํฌ๋กค๋ง์ ์ด๋ฐ๊ฑฐ๋ค"๋ผ๋ ๊ธ์ ๋ง์ด ์ฝ์ด๋ดค์ง๋ง,
์ด๋ ๊ฒ ํฉํธ๋ก ๋งํด์ฃผ์๋ ๋ถ์ ๊ธ์ ์ฒ์๋ดค์ต๋๋ค
์น ํฌ๋กค๋ฌ ๋ง๋ค์ด๋ณด๋ ์ค์ธ ํ๋ถ์์ ๋๋ค. ์ ๋ ํ์ฌ OpenSSL๊ณผ Winsock2๋ง ์ด์ฉํด์ ํฌ๋กค๋ฌ๋ฅผ ๋ง๋ค์ด๋ณด๋ ค ํ๊ณ ์์ต๋๋ค. ์ด ๊ธ์ ์ง์ ๋ดค์ผ๋ฉด ์ข ๋ ์ฝ๊ฒ ์ค๊ณํ์ ๋ฏ ์ถ๋ค์...ใ ใ ํ์คํ ์จ๋ผ์ธ ์์ ์๋ฃ๋ผ๊ณ ๋ ๋๋ถ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API, Bs4 ์ด์ฉํด์ ์ฝ๊ฒ ์ฝ๊ฒ ๋ง๋๋ ๋ฒ์ ์ค๋ช ํ๊ฒ ์ ๋ถ๋๊ตฐ์... ๊ธ์ด๋ถ ๋ง์๋๋ก ์จ๋ผ์ธ์ ์๋ ์๋ฃ๊ฐ ํฌ๋กค๋ฌ๋ผ ๋ถ๋ฆด ๊ฐ์น๊ฐ ์๋ ํ๋ก๊ทธ๋จ๋ค์ธ ๊ฒ ๊ฐ๊ธด ํฉ๋๋ค. ํ์ง๋ง! ๊ณต๋ถํ๋ ํ๋ถ์์ผ๋ก์จ ๊ทธ๋ฐ ํฌ์คํ ๋ค ์กฐ์ฐจ ๋ง์ ๋์์ด ๋์ต๋๋ค. ์๋ง ์ ์๋ง์ ๊ธ์ ํฌ์คํ ํ๊ณ ๊ฐ์ ์์์ ์ฐ์ ๋ถ๋ค๋ ์ ๋๋ก ๋ ํฌ๋กค๋ฌ๋ฅผ ๋ง๋ค์ด ๋ณด๊ธฐ ์ ์ ๋ค์ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ค์ตํด๋ณด๋ผ๋ ๋ชฉ์ ์ด ์๋์์๊น์?
Cloud market research ํ๋ค๊ฐ
ํฌ๋กค๋ฌ๊ฐ ๋ญ์ง? ํ์ฐธ์ ๋จธ๋ฌผ๋ ๋ค์ ใ
์ํด ๋ณต ๋ง์ด ๋ฐ์ผ์๊ณ ์ข์ ์ผ ๋ง๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ํ์์ฉ ํํธ ์๋ ค๊ณ ๊ฐ์
๋ ์๋ฃ : )
์๋
ํ์ธ์, ๊ธ ์ ์ฝ์์ต๋๋ค.
์ ๋ ์ ๋ง ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์ฌ๋์ด๊ธดํ๋ฐ ํ๊ฐ์ง ๊ถ๊ธํ๊ฒ ์์ด ๋๊ธ ๋จ๊น๋๋ค.
๊ทธ๋ฅ ํน์ ํ์ด์ง(์ปค๋ฎค๋ํฐ๊ฐ์)์์ ์ด๋ค ํค์๋๋ค์ด ์๋์ง, ์ด๋ค ๋ํฅ์ธ์ง ์ ๋์ ์ผํ์ ์ธ ๋ฐ์ดํฐ๋ง ์ป์ด๋ ๋๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์ธํฐ๋ท์ ๋์์๋ ๊ทธ๋ฌํ ๋ฐฉ๋ฒ๋ค๋ก ์์
์ ํด๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ธ๊ฐ์?
ํฌ๋กค๋ง์ด ๋ญ์งํ๊ณ ์ฐพ์๋ณด๋ ์ค์ ์ ์ตํ ๊ธ ๋๋ฌด ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํฌ๋กค๋ง ์ฐพ์๋ณด๋ฉด ์ฃ๋ค API๋ก ์ง์ ๊ฐ์ ๊ธ์ด์ค๋๋ฐ ์ด๊ฒ ๊ทธ ์ด์ ์๊ตฐ์???
์ง์ ๊ตฌํํ๊ธฐ ์ด๋ ค์ด ๋ถ์ผ๋ผ๋๊ฒ์ ๋ค์ ์๊ฒ๋์์ต๋๋ค ^0^...
๊ทธ๋ฆฌ๊ณ ๋งํฌ ํ๋ํ๋ ๋ฌ์์ฃผ์ ๊ฑฐ ๊ฐ์ฌ๋๋ฆฝ๋๋ค~~~!
์ข์ ๊ธ ์ ์ฝ์์ต๋๋ค. ์ ๋ ๋ค๋ฅธ ๋ถ์ผ์์ ์ผํ๋ค๊ฐ ๊ฐ๋ฐ์ ๊ด์ฌ์ด ์๊ฒจ์ ๊ธฐ์๊ธฐ์๋๋ ์ค์ธ๋ฐ, ๋ง์น ์ฐ๋ฌผ๋ฐ์ ํ๊ฒฝ์ ๋ณธ ๋๋์ ๋๋ค. ๋ด๋น์ ์ฅ์์ ์ ๋๋ก ๋ ์ ๋ณด๋ฅผ ํ๋จํ ๋ฅ๋ ฅ์ด ์๋๋ฐ ๊ต์ก์์ ์ ๋ ๋, bs4 ๋ฅผ ํฌ๋กค๋ง์ด๋ผ๊ณ ์๋ ค์ฃผ๋ค๋ณด๋ ๊ทธ๊ฑธ ๊ทธ๋๋ก ๋ฐ์๋ค์ด๊ฒ ๋๋ ๊ฒ ๊ฐ๋ค์. ์ฌ์ค ์ ๋ ์ ๋ ๋ ์ฐ๋ฉด์ ์ด์ฐจํผ ๋ชจ๋ ํ์ด์ง์ ํน์ ์ ๋ ํฐ๋ฅผ ์ผ์ผ์ด ์ฐพ์์ ์ ๋ ฅํด์ผํ๋ฉด ์๊ฐ๋ณด๋ค ์ฉ๋๊ฐ ์ ํ์ ์ด๋ค?? ๋ผ๋ ์๊ฐ์ ํ๊ธด ํ์์ต๋๋ค๋ง.... ํฌ๋กค๋ง์ชฝ์ผ๋ก ๊น๊ฒ ๊ณต๋ถํ ๊ณํ์ ์์ง๋ง ์ ์ด๋ ๋์์ ๋ณด์ด๋๊ฒ ๋ค๊ฐ ์๋๊ณ ๊ทธ ๋๋จธ์ ์ง์ง๊ฐ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์ด์ ๊ธฐ๋ถ์ด ์ข์ต๋๋ค. ์กฐ๊ธ ๋ฆ์์ง๋ง ์ํด ๋ณต ๋ง์ด ๋ฐ์ผ์ธ์.
์ด๊ฑด ๋ง์น ์์ค์ ๋ ๋์๋ค๋๋ ๊ฒ์ ๋งคํฌ๋ก๋ค์ ๋งคํฌ๋ก๋ ์๋๋ค
๋ผ๊ณ ๋งํ๋ ๊ฑฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ๋น์ฐํ ํด๋น ๋ถ์ผ๋ฅผ ์กฐ๊ธ ๋ ๊น๊ฒ ๊ณต๋ถํด๋ด๋ ๋ณธ๋ฌธ ๋ด์ฉ์ ์๋ ๊ฑฐ๊ณ ์คํ๋ ค ๋ง์ํ์ ๋ธ๋ก๊ทธ๋ค์ด ํฌ๋กค๋ฌ๋ผ๋ ์ฉ์ด๋ฅผ ์ผ๋ฐ์ฌ๋๋ค์๊ฒ๋ ์ ํํด์ฃผ๋ ์ข์ ์ํฅ์ ์ฃผ๊ณ ์๋ ๊ฑด๋ฐ. ๋ชจ๋ ํ๋ฌธ์ ์ฅ๋๊ฐ์ฒ๋ผ ๊ฐ์ง๊ณ ๋๋ฉด์ ์์ํ๋ ๊ฑฐ์ง ๋ฌธ๋ฒ ํ๋ ธ๋ค๊ณ ์์ด ๋งํ์ง ๋ง๋ผ๋ ๊ฑฐ๋์ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋ค๊ณ ์๊ฐํฉ๋๋ค๋ง.
๊ฐ๋ฐ ๋ด๋น ๋ํ์์ ๋๋ค. ๊ฐ์ธ ํ๋ก์ ํธ๋ก ์ฃผ์ ๊ด๋ จ ๋ด์ค ์นํฌ๋กค๋ง์ด๋ ํด๋ณผ๊น ํด์ ๊ฒ์ํ๋ค๊ฐ ์๊ฐ๋ณด๋ค ๋ผ ๋๋ฆฌ๋(?) ๊ฒ์๋ฌผ์ ๋ณด๊ฒ๋๋ค์ ใ ใ ใ ใ ์ญ์ ์๋ฌด๋ ๊ฒ๋ css selector์ป์ด์ ํ ์คํธ ๊ธ์ด์ค๋๊ฑด ๋ฉ์ฒญํ ๋ฐฉ์์ด๋ผ๋๊ฑธ ๋ฐฐ์ ์ต๋๋ค. ์ ๋ชจ๋ฅด๊ณ ์นํฌ๋กค๋งํ๊ธฐ๋ณด๋ค ๊ทธ๋ฅ ๋ค์ด๋ฒ์ ์คํ API๋ฅผ ์ฐ๋๊ฒ ๋์ ๊ฒ ๊ฐ์ต๋๋ค :) ๊ฐ์ฌํฉ๋๋ค!
๊ฐ์ฌํฉ๋๋ค.
๋ธ๋ก๊ทธ์ ํฌ๋กค๋ง์ด๋ผ ์ ์ ๋จ์ด๋ค์ scrap์ด๋ผ๊ณ ๋ฐ๊ฟ์ผ๊ฒ ๋ค์.
๋๋ถ์ ํฌ๋กค๋ง์ด๋ผ๋ ์๋ก์ด ๋ถ์ผ๋ฅผ ์๊ฒ๋ฌ์ต๋๋ค.
์ scrapy์ด๋ฆ์ด scrap์ธ์ง ์ด์ ๋๋๋๋คใ
ใ
' ๊ธฐ๋ถํ์ ๋์ ์ฌ๋ฆฌ์ฌ์์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ' ์ ๋ง ๋ง์์ ๋๋ ๋ฌธ๊ตฌ๋ค์
์ข์๊ธ ์๋ณด๊ณ ๊ฐ๋๋ค :-)
ํฌ๋กค๋ง์ ์์ ํ ์คํดํ๊ณ ์์๋ค์.. ์ด ๋จ์ด๊ฐ ์ด๋ ๊ฒ ์๋ชป ์ ํ๋๊ณ ์์๋ค๋.. ํฌ๋กค๋ง์ด๋ผ ๋ถ๋ฆฌ๋ ๋๋ถ๋ถ์ ๊ฒ๋ค์ ์ผ๋ฅธ ์คํฌ๋ํ ์ด๋ผ๊ณ ๊ณ ์ณ์ผ๊ฒ ๋ค์.
์ข์ ๊ธ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!!
์ ์ฝ์์ต๋๋ค.
๋ค๋ฅธ ๋ธ๋ก๊ทธ์์ ํฌ๋กค๋ฌ๋ผ๋ ์ฉ์ด๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๊ฑด, ์ญ์ ๋ชจ๋น์ผ๋์ ํํ๋๋ก ๋ง๋
ํ ๋ค๋ฅธ ์ฉ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์์. ๊ทธ๋ฐ๋ฐ, ์ฌ๋ฌ ํ์ด์ง๋ฅผ ์ํํ๋ฉฐ html ๊ตฌ์กฐ ๋ด์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ธ๋ค๋ ๋ชฉ์ ์ฑ์ ๊ณ ๋ คํ๋ค๋ฉด, ๋น๊ต์ ์ ์ฌํ ๊ฐ๋
์ ์ฉ์ด ํฌ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฑด ๊ทธ๋ฆฌ ์๋ชป๋์ด ๋ณด์ด์ง ์๊ฑฐ๋ ์. ์ด๋ฐ ์ ์์ ๋ณด๋ฉด ํฌ๋กค๋ฌ๋ผ๋ ์ฉ์ด๋ ํ์ฌ ์ค์ฉ๋๊ณ ์๋ ๊ฒ์ด ์๋๊ณ , ๊ทธ ๊ฐ๋
์ด ์ ์ ๋ ํ์ฅ๋๊ณ ์๋ ์ํฉ์ด๋ผ๊ณ ๋ณผ ์ ์์ ๊ฒ ๊ฐ์๋ฐ.. ์ด๋ฐ ๊ฒฌํด์ ๋ํด์๋ ์ด๋ป๊ฒ ์๊ฐํ์๋์?
๋ณธ๋ฌธ ๋ด์ฉ์ด๋์ ๋ณ ์๊ด ์์ง๋ง ์ฌ๊ธฐ์ด๋ ์ผ๋์ ํฌ๋กค๋ง(Hmm..) ์ฌํ๋ ํญ์์ฌ์์ ๋ฌด์ฃ ๋ฐ์๋๊ตฐ์.
zz ์์ค ๋ ๋ฒจ 2๋ผ๋ ๋ญ ๊ธฐ๋ถ๋์ ๊ฒ๋ ์๋ค์
๋ค๋ง ์น ํฌ๋กค๋ฌ์ข ๊ทธ๋ง ๋ง๋ค์ด๋ผ๋ณด๋จ ์น ํฌ๋กค๋ฌ๋ ๋ง ๊ฐ๋ค ๋ถ์ด์ง ๋ง๋ผ๋์ชฝ์ด ์ ๋ชฉ์ ๋ ๋ง์๊ฑฐ๊ฐ๋ค์
์๋
ํ์ธ์. ํฌ๋กค๋ง์ ๋ํ ๊ฐ๋
์ ์ฐพ์๋ณด๋ ์ค ํด๋น๊ธ์ ์ฐพ๊ฒ๋์ด ํฅ๋ฏธ๋กญ๊ฒ ์ฝ์์ต๋๋ค.
์ง๊ธ๊น์ง ํฌ๋กค๋ง์ ์นํ์ด์ง์ ๋ด์ฉ๋ณต์ฌ๋ก ์๊ฐํ๊ณ css selector๋ฅผ ์ฌ์ฉํ๋๊ฒ์ด ๋น์ฐํ๋ค ์๊ฐํด์๊ธฐ ๋๋ฌธ์ ๋ง์ํ์ ํฌ๋กค๋ง์ด ์ด๋ค๊ฐ๋
์ธ์ง, ์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ ์ง ๊ถ๊ธํด์ก์ต๋๋ค.
๊ธ์์ ๋ง์ํ์๋ ๋ด์ฉ์ ์๋ชป์ง์๊ฒ ๊ฐ๊ธด ํ์ง๋ง,
[๋ด์คํ์ด์ง์์ ๋ด์ค์ ๋ชฉ์ ๊ฐ์ ธ์ค๊ธฐ] ๊ฐ์ ๋ฐฉ์์ ํฌ๋กค๋ง์ ์์์ ๋ง์ํด์ฃผ์
ํ
์คํธ ๋ฐ๋๋ฅผ ํตํ DOM๊ธฐ๋ฐ ์ปจํ
์ธ ์ถ์ถ , ํ์ดํผ ๋งํฌ๋ฅผ ํตํ ํ์ด์ง ํ์ ๋ฑ์ ์ด์ฉํด ๋ง๋๋๊ฒ์ด ๊ฐ๋ฅํ์ง ๊ถ๊ธํฉ๋๋ค.
์์ง ๋ฐฐ์ฐ๋ ๋จ๊ณ๋ผ ์ง๋ฌธ์ด ๋ง์ด ๋ชจ์๋ ์ ์์ต๋๋ค. ํ์ง๋ง ์ธํฐ๋ท ํฌ๋กค๋ง์ ๊ตฌํํ๋ ค๋ ๋ชฉํ๊ฐ ์์ด ๋ง์ํ์ ๋ด์ฉ์ด ๊ถ๊ธํด ๊ธ ๋จ๊ฒจ๋ด
๋๋ค.
์ ๋ง ์ข์ ๋ด์ฉ ์ ๋ดค์ต๋๋ค.
๊ทผ๋ฐ ๋ง์ฝ robots.txt ์ค์ ์ ์ํด๋์ ์ฌ์ดํธ์ ๊ฒฝ์ฐ์๋ ๊ฐ๋ฅํ๋ฉด ํฌ๋กค๋ง์ ์ํ๋๊ฒ ์ผ๋ฐ์ ์ผ๊น์?
๊ณ ๋ง์์ ํฌ๋กค๋ฌํฌ๋กค๋ฌ ๋ค์ด๋ง ๋ณด๋ค๊ฐ ๋ณด๊ฒ๋ ์ฒซ ๊ฒ์๋ฌผ์ด ์ด๊ณณ์ด๋ผ ์๋ฐฐ์๊ฐ๋๋ค.
ใ ใ ใ ใ ๋๋ฌด ๋ง๋๋ง์ธ๋ฐ ์ด๋ณด์ํํ ์ด๋ ๊ฒ ์ค๋ช ํ๋ฉด ๋ชป ์์๋ค์ผ๋๊น ์ด์ฉ ์ ์๋ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ์์. ๋ญ๋๊น ํฌ๋กค๋ง์ ๋จํธ์ ์ธ ์์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ ์์ฆ ๋ธ๋ก๊ทธ๋ค์ ๋์์๋ ์ฝ๋๋ค์ด์ฃ . ์ ์ฝ๊ณ ๊ฐ๋๋ค.
ํฌ๋กค๋ง์ ๊ดํ ๋ธ๋ก๊ทธ ํฌ์คํ
์์ ์ด ๋ธ๋ก๊ทธ ๋งํฌ๋ฅผ ๋ฌ์์ต๋๋ค.
robots.txt ๋ฑ ์ค์ํ ๋ฌธ์ ๋ฅผ ์ ์ง์ด์ฃผ์ ๊ธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
https://cat-minzzi.tistory.com/18 https://cat-minzzi.tistory.com/17
๋ฐ์ดํฐ์์ง ์ฒจํ ๋ ์ฝ๋ฉ ์ ๋๋ก ์๋ฐฐ์ด์ํ์์ bs4 ๋
ผ๋ฆฌํ๋ฆ์ฝ๋๋ก ์น์คํฌ๋ฉํ๋๋ฐ
์ ๊น ๋๋ฆฌ๋ค๊ฐ ์ด ์ด๊ฑฐ ๋๋์ค๊ณต๊ฒฉ ์๋๊ฐ? ์ถ์ด์ ์ค๋จํ๊ณ ํ์์ฌ๋ฆฝ2์ด๊ฑธ๊ณ ํจ
์ง๊ธ์ ๋ค ๋ฐฐ์์ ๋ฆฌํฉํ ๋ง, ์ต์ ํํ๋ ค๊ณ sleep ๊ธฐ์ค ์๋์ง ๊ฒ์์ค
์น์คํฌ๋ฉ์ ํน์ ๋ชฉ์ ์ด ์์ด์ 1ํ์ฑ์ผ๋ก ๋๋ฆฌ๋ฉด ๋์ธ๋ฐ ํฌ๋กค๋ง์ ๋ญํ ๋ ์ฐ๋์ง ๊ถ๊ธํจ ๊ทธ๋ฐ๋ฐ ์์ง ์๊ณ ์ถ์ง์์
์ด๋ฏธ ์๊ณ ์๋ ์น์ฌ์ดํธ ๋ฟ๋ง์ด ์๋๋ผ ๋ชจ๋ฅด๋ ์น์ฌ์ดํธ์์๋ ์ ๋ณด๋ฅผ ๋ชจ์์ค๋๋ก ๋ง๋๋ ๊ฒ์ด ํฌ๋กค๋ง์ ํต์ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค ์ฃผ์ธ์ฅ๋์ด ๋ง์ํ์ ๋๋ก๋ฉด ์ ์ ์ฌ๋ฌ ์น์ฌ์ดํธ์์ ์ ๋ณด๋ฅผ ๋ชจ์์ฌ ์ ์๊ฒ ๋๊ฒ ๋ค์ ๊ถ๊ธํ๋ ๋ถ๋ถ์ด ํด๊ฒฐ๋์ต๋๋ค ํ์คํ ๋ค๋ฅธ ๋ธ๋ก๊ทธ์์๋ ํฌ๋กค๋ง์ ์๋ชป๋ ๊ฐ๋ ์ผ๋ก ์๊ฐํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ํ์ ๋ ์ฌ์ดํธ์์๋ง ์ ๋ณด๋ฅผ ๋ชจ์์ค๋๊น์
์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ์ ๊ฐ ๋๋ฌด ํ๊ณ ์ถ์๋ ๋ง์ธ๋ฐ, ๋น์ ์ด ์ง์ ํด์ฃผ์
์ ๋๋ฌด ํ๋ณตํ๋ค์ ใ
ใ
๋๋ ์๋ ์ํํ๊ฒ ์ฃผ์๋ค์ ๊ฑฐ ๊ฐ์ง๊ณ ๋ง์น ์๊ธฐ๊บผ๋ผ๊ณ ๋ต๋ต๊ฑฐ๋ฆฌ๋ ๋ฉ์ฒญํ ์ฌ๋๋ค ๋๋ฌธ์ ์ ๋ ๋๋ฌด ๋ต๋ตํ๋๋ฐ ์ ๋ง๋ก ๊ฐ์ฌํฉ๋๋ค... ์ ๋ง๋ก... ์ ์๋ช
์ ์์ธ์ด์ญ๋๋ค.
๋ํ๊ต ์กธ์ ์ํ์ผ๋ก ์งํํ๋ ๋ด์ฉ ์ค, ํฌ๋กค๋ง์ ์ฌ์ฉํ๊ฒ๋์ด ์ธํฐ๋ท์ ๋์๋ค๋ ๋ณด๊ณ ์์๋๋ฐ ์ผ๋ถ์ ์ฌ์ฉ์ ์ ์ฒด๋ก ์ ์ฉํ ์ ์๋ ๊ฒ ๋ง๋ฅ, ๋ ๋ณ๊ฒฝ์ ๋ํด์๋ ์ด์ฉ ์ ์๋ค๋ ์์ ์ฝ๋๋ง ๋ณด๋ค๊ฐ ์ด์ ์ผ ๋ง์์ด ๋์ด๋ ๊ธ์ ๋ณด๊ฒ ๋์๋ค์. ๊ฒ์๊ธ ์์ฑํ์๋๋ผ ๊ณ ์ํ์ จ์ต๋๋ค! ์๋ณผ๊ฒ์!! ๐
์ข์ ๊ธ ์์ฑํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ง์ด ๋ฐฐ์ฐ๊ณ ๊ฐ์
์๋ ํ์ธ์. ๋ณธ๋ฌธ์ ๋์๋ '๊ฐ์ฅ ์ฌ๊ฐํ๊ฒ ์๋ชป๋ ๊ฐ๋ ์ ์ ํํ๋ ๊ฒ์๊ธ'์ ๋ธ๋ก๊ทธ ์ฃผ์ธ์ ๋๋ค.
์์ฑํ์ ๊ธ์ด ๋ฌด์จ ๋ด์ฉ์ธ์ง ๋ค ์ฝ์ด๋ดค์ต๋๋ค.
์ ๊ธ์ ์ผ์ ๋น์ ๊ฐ๋ฐ์ ์ฒ์์ด๋ผ ์คํฐ๋ ํด์ฃผ์๋ ๋ถ๋ค์ด ์ฝ๊ฒ ์ ์ํ๊ฒ ๋์์ฃผ์๋ฉฐ ํฌ๋กค๋ง์ ๋ํด ๋ง๋ณด๊ฒ ํด์ฃผ๊ฒ ๋ค๋ ์๋ฏธ๋ก ์ง์ ๊ณต์ ๋ฅผ ํด์คฌ๊ณ , ๋ฐฐ์ ๋ ๋ด์ฉ๊ณผ ๋ฐ๋ก ์ ๋ฆฌํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ธ๋ก๊ทธ ๊ธ๋ค๊ณผ ํฌ๋ก์ค ํ๋ฉฐ ๋ธ๋ก๊ทธ์ ๊ธฐ๋ก์ฉ์ผ๋ก ์ ์ด๋๋๊ฑด๋ฐ.. ์ด๋ ๊ฒ ๊ฐ์ฅ ์ฌ๊ฐํ๊ฒ ์๋ชป๋ ๊ฐ๋
์ ์ ํํ๋ ๋ธ๋ก๊ทธ๋ผ๊ณ ์ฌ๊ธฐ์ ์๊ฐ๋ ์ค์ ๋ชฐ๋๋ค์
๋ฌผ๋ก mowinckel๋์ด ํฌ๋กค๋ง์ ๋ํด ๋ต๋ตํ ๋ถ๋ถ์ด ์๊ณ , ํฌ๋กค๋ง์ ๋ํด ์ ํํ ์ค๋ช
์ ํ๊ธฐ์ํด ๊ธ์ ์ฐ์ ๊ฑฐ๋ผ๋ ๋ถ๋ถ์ ์ดํดํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ๊ทธ๋ฅ ๋ฐ์ ๋๋ฒ๋ฆฐ ์ ์ ์
์ฅ์์๋ ์ด๋ฐ์์ผ๋ก ๊ธ์ ์์ฑํ์ฌ ์ฌ๊ฐํ ๊ฐ๋
์ ์ ํํ๋ ๋ธ๋ก๊ทธ๋ผ๊ณ ์๊ฐํด์ฃผ์ค๊ฒ ์๋๋ผ, ์ฐจ๋ผ๋ฆฌ ๊ฒ์๊ธ์ ๋๊ธ์ด๋ผ๋ ๋ฌ์์ฃผ์
จ์ผ๋ฉด ๋ ์ ๋ฆฌ๋ฅผ ํ๊ฑฐ๋ ํ๋ค๋ชปํด ์์ ์ด๋ผ๋ ํ์ํ
๋ฐ ์ด๋ ๊ฒ ๋ฐ์ ๋ฅผ ํด๋ฒ๋ฆฌ์
์ ์ฐธ ์ํ๊น์ต๋๋ค.
์ ๋ ๋ฐฐ์ฐ๋ ์ ์ฅ์์ ๊ณต๋ถ์ข ๋ ํด๋ณด๊ฒ ๋ค๊ณ ๊ฒ์ํ ๊ธ์ด๋ผ, ๋๊ตฐ๊ฐ ์๋ชป๋ฌ๋ค๋๊ฑธ ์๋ ค์คฌ์ผ๋ฉด ๋น์ฐํ ๋ฐ์๋ค์ผํ ๋ฐ ๊ทธ์ ์ด๋ฐ์์ผ๋ก ๋ง์ ๋ธ๋ก๊ทธ๋ค ์ค์์ ์ ๋ธ๋ก๊ทธ๊ฐ URL๊น์ง ๊ณต๊ฐํ๋ฉด์ ์ด๋ฐ ์ฌ๊ฐํ๊ฒ ์๋ชป๋ ๋ธ๋ก๊ทธ๊ฐ ๋๋ฒ๋ ค์ ์ ์ ์ฅ์์ ์ข ๊ทธ๋ ์ต๋๋ค. ์ ๋ฐ ๊ฐ๋ ์์ฒด๊ฐ ํ๋ ธ๋ค๋๊ฒ ์กฐ์ฐจ ๋ชฐ๋๋ ์๊ธฐ์๋๋ฐ ๋ง์ด์ฃ ์ฐธ..
๊ฐ๋ง์ ๋ญ ์ข ๊ฒ์ํ ๊ฒ ์์ด์ ์ ๋ธ๋ก๊ทธ ๊ฒ์ํ๋ค๊ฐ 2๋ ์ ์ ๊ฒ์๊ธ ํ๋๋ก ์ฌ์ ์ด ๋ณต์กํด์ ธ์ ๊ฐ๋๋ค. ๊ฒ์๊ธ์ ๋ฐ์ ํ์ ๋งํผ ์๋ชป๋ ํฌ๋กค๋ฌ๋ฅผ ์ซ์ดํ์ ๊ฑฐ ๊ฐ์ ๋ด๋ฆฌ๊ฒ ์ต๋๋ค.
ํ ํ์์ด ํ๊ฑธ์ ํ๊ฑธ์ ๊ณต๋ถํด ๋ฐฐ์ด ๋ด์ฉ์ ๋ธ๋ก๊ทธ๋ค์ ์ ๋ฆฌ ํ ๊ฒ๋ค์ ๊ตณ์ด ๊ฐ์ ธ์ ํ๋ ธ๋ค๋ฉฐ ์ ์์ ์ฌ๋ฆฌ๊ณ ๋นํํ๋ ๋ชจ์ต์ด ์ฉ์ข์๋ณด์ด์ง์์ต๋๋ค. ๋ค๋ค ํฌ๋กค๋ง์ ๋ฐฐ์ฐ์ ํ์ฌ ์์ํ ๋ธ๋ก๊ทธ์ผํ ๋ฐ ๋๊ตฌ๋ ์ง ์ฒ์์ ํ๋ฆด์ ์๊ณ ๊ทธ ํ๋ฆผ์ ์๋ก์ด ํด๋ต์ ์ฐพ์๊ฐ๋ ์ด๋ฆฐ ์์น๋ค์ ํ์๊ฐ๋ฉฐ ์กฐํ์๋ฅผ ์ํด ์๊ทน์ ์ธ ๋ธ๋ก๊ทธ๋ฅผ ์ฐ๋ ๋ชจ์ต ์ ๋ง ๋ชป๋ฌ์ต๋๋ค. ๋ถ๋๋ฌ์ด์ค ์์ธ์.
Crawler๋ผ๋ ์ฉ์ด๋ฅผ ๋ฌด๋ถ๋ณํ๊ฒ ์๋ชป ์ฌ์ฉํ๋ ์ฌ๋๋ค ๋๋ฌธ์ ํ๊ฐ ์์ฃผ ๋ง์ด ๋์ ๊ฒ ๊ฐ์ ๋ณด์ด๋ค์.
์ธํฐ๋ท ์์์ Crawler๋ผ๋ ์ฉ์ด๋ฅผ ์๋ชป ์ฌ์ฉํ์๋ ๋ถ๋ค์ด ๋์ ์๋๋ฅผ ๊ฐ์ง ๊ฒ ๊ฐ์ ๋ณด์ด์ง ์์ต๋๋ค.
๋จ์ํ ์ ๋ชฐ๋ผ์ Crawler๋ผ๋ ์ฉ์ด๋ฅผ ์๋ชป ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ, ์ ๋ชจ๋ฅธ๋ค๋ ์ด์ ๋ก ๋ถํน์ ๋ค์๋ฅผ ์๊น์ง ์จ๊ฐ๋ฉฐ ๋น๋ํ๊ธฐ ๋ณด๋ค๋ ์น์ ํ๊ฒ ๊ทธ๊ฑด Crawler๊ฐ ์๋๋ผ Scraper๊ฐ ์ ํํ ์ฉ์ด๋ผ๊ณ ๊ฐ์ด๋๋ฅผ ์ฃผ์ จ์ผ๋ฉด ์ด๋ ์๊น ํ๋ ์๊ฐ์ด ๋ญ๋๋ค.
"๋์ ์๋ ๋นํ์ ๊ณตํํ ๋น๋์ผ ๋ฟ์ด๋ค."
๋ณธ๋ฌธ์ ๋ณด๋ฉด ๋ณธ์ธ๋ ์ ํํ ์ฉ์ด์ธ Scraper๋ ์ ์ ๋ชฐ๋๋๊ฒ ๊ฐ์๋ฐ์.
"๋์(์ ํํ ์ฉ์ด)๋ ์ ์ํด์ฃผ์ง ์์ผ๋ฉด์ ์ผ๋จ ๋ชจ๋ฅด๊ฒ ๊ณ ๊ทธ๊ฑด ๋ฌด์กฐ๊ฑด Crawler๋ ์๋๊ฑด ํ์คํ๋๊น ์ฐ ๊ณต๋์ ๊ฐ๋ฐ์๋ก์ ๋ ๊ทธ๋ฅ ๋๊ณ ๋ณผ ์ ์์ด. ์์ ํ ๊บผ์ผ!" ์ด๋ฐ ํ๋๊ฐ ๋ง์น ์ผ๋ฏธ๋๋จธ๋์ ๋์ค๋ ์ผ๋ถ ํ์ฐ์ด๋ค์ ํ๋ถ์ฌ์ด ๋๊ปด์ง ์ ๋์ ๋๋ค.
๋๊ตฐ๊ฐ ๋ชจ๋น์ผ๋์ด ์๋ชป ์๊ณ ์๋ ์ง์์ ์๊น์ง ํ๋ฉด์ ๋น๋ํ๋ฉด ๊ธฐ๋ถ์ด ์ด๋ ์ค๊น์? ์ ํํ ์ง์๋ ์๋ ค์ฃผ์ง ์์ผ๋ฉด์์.
"๊ทธ๋๋ ๊ทธ๋ ์ง. Crawler๋ฅผ ์ ํํ ๋ชจ๋ฅด๋๊ฑด ๋๋ฌด ์ฌํ์ง ์๋๋?" ๋ผ๊ณ ๋ฐ๋ฌธํ์ค ์ ๋ ์์ง๋ง, ์ธ์์ ๋ชจ๋ ์๋์ ์ธ ๊ฒ๋๋ค.
๋ณธ์ธ์ด ๋น์ฐํ ์๋๊ฑธ ๋๊ตฐ๊ฐ๋ ๋ชจ๋ฅผ ์ ์๊ณ , ๋ฐ๋์ ๊ฒฝ์ฐ๋ ํ๋คํฉ๋๋ค.
๋ชจ๋น์ผ๋๋ณด๋ค ํจ์ฌ ๋ ๋๋จํ ๋ง์ ์ฌ๋๋ค์ด ๋ชจ๋น์ผ๋์ ๊ธ์ ๋ณด๊ณ "๋ญ์ผ ์ด ์ข๋ณ์ ์? ใ ใ " ์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค๋๊ฑฐ์ฃ .
์ง์๋ณด๋ค๋ ์งํ๊ฐ ์ค์ํ๊ณ , ์ต๊ณ ์ ์งํ๋ ๊ฒธ์๊ณผ ์น์ ์ด๋ผ๊ณ ํฉ๋๋ค.
Crawler์ ๋ํ ํด๋ฐํ? ์ง์๋ ์ข์ง๋ง ๊ฒธ์๊ณผ ์น์ ์ด๋ผ๋ ์งํ๋ ๋ฐฐ์ฐ์๋ฉด ์ด๋จ๊น์?
๋ณธ๋ฌธ์ ์ํคํ ์ฒ๋ถ๋ถ ์ฌ์ง ์๋ช ์ด ๋ค๋๊ฑฐ๊ฐ์๋ฐ์? ๐คช
๊ณต๋ถํ๋ ๊ณผ์ ์์ ๋ชจ๋น์ผ๋ ๊ธ์ ๋ผ ๋ง์ผ๋ฉฐ ๋ณด๊ณ ์์ต๋๋ค.
ํ์ตํ๋ฉด์ ๊ฐ๋ฐ์๊ฐ ๋ง๋๋ ๋ฒ์ ์ด์๋ก ๊ฐ์ธ์ ๋ณด๋ณดํธ ์ธ์ '์ด๋ค ์ด์๊ฐ ์์๊น?'์ ๊ถ๊ธํจ์ ํ๊ณ ์์๋๋ฐ, ๋ค๋ฅธ ์ฌ๋ก๋ฅผ ๋ง๋๋ ํฅ๋ฏธ๋กญ๊ณ ์ฌ๋ฏธ ์์์ต๋๋ค.
๋ณธ๋ฌธ์์ ์ผ๋์ ์ฌ๊ธฐ์ด๋ ๋ฒ์ ๋คํผ์ด ํฅ๋ฏธ๋ก์์ ์ต๊ทผ ๊ฒฐ๊ณผ๋ ์ฉ์ด๋ฅผ ์กฐ๊ธ ์ฐพ์๋ดค์ต๋๋ค.
1. ๋ณธ๋ฌธ์์ ์คํ์ ์ฌ๋ก์์ 1์ฌ ๊ฒฐ๊ณผ ํผ๊ณ ์ธ 3(๊ฐ๋ฐ์) ์ง์ญ 10์, ์งํ์ ์ 2๋
, ์ฌํ๋ด์ฌ 120์๊ฐ์ผ๋ก ์ง์ญํ์ด ์ ๊ณ ๋ ๊ฒ์ ๋ง์ผ๋ ์คํ์ด ๋จ์ด์ง ๊ฒ์ ์๋ ๊ฒ์ผ๋ก ๋ณด์ฌ์.
2. ์ต์ข
๊ฒฐ๊ณผ๊ฐ ๊ถ๊ธํด ์กฐ๊ธ ๋ ์ฐพ์๋ดค์ต๋๋ค. ์๊ฐ์ด ์ง๋์ ๋๋ฒ์์์ ์ต์ข
๋ฌด์ฃ๊ฐ ๋์์ต๋๋ค.
21๋
1์ 2์ฌ ๋ฌด์ฃ(https://www.law.go.kr/precInfoP.do?precSeq=221911)
22๋
5์ ๋๋ฒ ํ์ (https://www.law.go.kr/precInfoP.do?precSeq=221765)
์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ธก์์ ์๊ฐํ ๊ฒ์ด ๋ ๋ง๊ตฌ๋ ์๊ฐํ๊ณ , ๊ฐ๋ฐ์ ํ๋ฉด์๋ ๋ฒ์ ์ด์๋ฅผ ์๊ฐํด ๋ด์ผ๊ฒ ๊ตฌ๋ ์ถ์์ต๋๋ค.
์ฌ๋ฌ ๋ฐฉ๋ฉด์์ ๋์๋๋ ๊ธ ๊ฐ์ฌํฉ๋๋ค.
์ด๋ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด,
http๋ก ์์ฒญํด์ ์ง์ ๋ง๋๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ด๊ฒ ๋ค์.
๋ด์ฉ์ด ์ ์ตํ๊ณ ๊ณต๊ฐ๋๋ ๋ถ๋ถ์ด ๋ง์ต๋๋ค. ์ ๋ ๋ชฐ๋๋ ๋ถ๋ถ๋ ์๊ฒ๋๋ค์. ๊ทธ๋ฐ ์ข์์ ๊ณผ ๋ณ๊ฐ๋ก
๊ธ์ด๋ถ ์ฌ์๊ณผ ํ๋,๋งํฌ๊ฐ ์์๋์ทจ๋ ์๋์ปฌํ ๊ฐ๋ฐใ
ใธ๋ณด๋๊ฑฐ๊ฐ์์ ์์ด ๋ฉ์ฐ๊ป์ต๋๋ค. ๋ง์ฝ ์ฌ๋ฐ๊ฒ ๊ธ์ ์ฐ๋ ค๊ณ ํ์ ๊ฑฐ๋ฉด ์ทจ์ง๋ ์ดํดํ๋ ์ฝ๋์ด๋ค์ ๋ฐ๊ฐ์ ์ฌ์ง ์๊ณ ๋ ์ฌ๋ฐ๊ฒ ์ธ์์๋ ๋ฐฉ๋ฒ์ด ๋ง์ผ๋ ์ข ์๊ฐํด๋ณด์๋๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค. ๊ตณ์ด ์ ์ ๋ง๋ค ํ์ ์์ผ๋๊น์
์๋
ํ์ธ์~ ํฌ๋กค๋ง์ ์
๋ฌธํ๋ ค๊ณ ํ ํ์์ธ๋ฐ
์กฐ๊ธ ์ํด๋ณด๋ ค๊ณ ํฌ๋กค๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์จ์ ํด๋ณผ๊น.. ๋ผ๊ณ ํ๋ ์ฐธ์ ์ด ๊ธ์ ๋ณด๊ณ
๊ทธ๋ฅ ๊ฐ๋ณ๊ฒ ์๋น์ค๋ก ๊ฐ๋จํ๊ฒ ์ฌ์ฉํด๋ณด๊ณ ๋ถํธํจ์ ๋๋ผ๋ฉด ์ด ๊ธ์ ๋
ผ๋ฌธ์ ์ฐธ์กฐํด์ ์ ๋ง๋ค์ด๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค
ํ๋ก ํธ์๋ ๊ฐ๋ฐ๋ง ํ๋ค๋ณด๋๊น ํฌ๋กค๋ง์ด ๋งค๋ ฅ์ ์ด์ด์ ์ด๊ฒ ์ ๊ฒ ์ฐพ์๋ณด๊ณ ์์๋๋ฐ ๋ง์ํ์ ๊ฒ์ฒ๋ผ ์ ๋ถ selenium, scrapy, bs4๋ฅผ ์ด์ฉํด์ ์ง์ ํ๊ทธ๋ค์ ์ผ์ผ์ด inspect๋ก ์ฐพ์๋ณธ ๋ค์์ ๊ทธ์ ๋ง๊ฒ ์ฝ๋๋ฅผ ์ ๋ ฅํ๊ณ ์๋๋ผ๊ตฌ์. ์ ํฌ ํ์ฌ์์๋ ์ด๊ธฐ์ ํ๋ฆฌ๋์๋ถ์ด ๋ง๋ ํฌ๋กค๋ฌ๊ฐ ๊ทธ ํ๊ฒ ์ฌ์ดํธ์ ์นดํ ๊ณ ๋ฆฌ ํ๋๋ง ์์ ๋ผ๋ ๋ฐ๋ก ์๋ฌ๊ฐ ๋๊ณ ์ผ์ผ์ด ์์ ํด์ฃผ๊ณ ์๋ค๋ ๋ง์ ๋ฃ๊ณ ์ด๋ป๊ฒ ๊ทธ๋ ๊ฒ ๋นํจ์จ์ ์ผ ์๊ฐ ์๋์ง ๋๋ฌ์๋๋ฐ ์ด๋ ๊ฒ ๋ฑ ์ง์ด์ฃผ์๋ค์!