Crawling, Scraping ๋น์ทํ ๋ป์ด๋ฉฐ ๋ด๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์น์์ ์์งํจ์ ์๋ฏธํ๋ค.
Design Seeds ๋ผ๋ ์น์ฌ์ดํธ๋ฅผ ์ฐ๊ตฌ์ ๋ชฉ์ ์ผ๋ก ํฌ๋กค๋ง์ ํ๋ค.
์ด ์น์ฌ์ดํธ๋ ์๊ฐ์์ ์๊ฐ์ ๋ฐ์, ์๋ฆ๋ค์ด ์ด๋ฏธ์ง์์ ์ฃผ์ ์์์ color palette๋ก ๋ํ๋ด์ค๋ค.
์ค์ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ํด๊ฒฐ ์ด๋ ์๋ ํค๋๋ฅผ ์ฐธ๊ณ
์ด ์น์ฌ์ดํธ๋ฅผ ํฌ๋กค๋งํ๊ธฐ ์ํด ๊ฐ์ฅ ๋จผ์ ์๊ฐํ ๋ฐฉ๋ฒ์ ์ด ์น์ฌ์ดํธ์ Instagram ๊ณ์ ํฌ๋กค๋ง์ด๋ค.
ํ๋ ์ด ๋ฐฉ๋ฒ์ Instagram API๋ฅผ ์ฌ์ฉํ์ฌ์ผํ๋ค. ๊ทธ๋์ Instagram Developer์ ์ฑ์ ๋ฑ๋กํ๊ณ client-id, client-secret ๋ฑ์ ํตํด์ access-token ๊น์ง ์ป์์ง๋ง, ๋ฐฉ๋ฒ์ด ๋ณต์กํ๊ณ ์ฌ์ฉํ๋ python code๊ฐ ์ ์ง๋ณด์๊ฐ ์๋์ด์๋ค. ์ด blog post๋ฅผ ํตํด์ access-token์ ์ป์๋ค.
๋ฌด์๋ณด๋ค๋ ๋ด๊ฐ ์ง์ ์น์ฌ์ดํธ๋ฅผ ํฌ๋กค๋งํ๋ ๊ฒ์ด ์๋์ด์ ํฌ๊ธฐํ๋ค.
๊ทธ ๋ค์์ ์น์ฌ์ดํธ์ pinterest๋ฅผ ํฌ๋กค๋งํ๋ ๊ฒ์ธ๋ฐ, ์ด ๋ฐฉ๋ฒ์ Chrome์ Extention์์ PinDown์ด๋ผ๋ ์ฑ์ ์ฌ์ฉํ๋ค. ๊ทธ๋ฆฌ๊ณ design seeds, palette ๊ฒ์์๋ก ๋์ค๋ ํ๋ค์ ๋ค์ด๋ฐ์๋ดค๋๋ฐ ์๋๋ ๋น ๋ฅด๊ณ ์ข์๋ฐ ๋ฌด๋ฃ๋ฒ์ ์ ๊ฐฏ์ ์ ํ์ด ์๋ค. ์ ๋ฃ ๋ฒ์ ๊ฒฐ์ ๋ฅผ ํ๋ คํ๋๋ฐ ๋ฆฌ๋ทฐ๋ฅผ ๋ณด๋ ๋ฒ๊ทธ๊ฐ ์๋ ๊ฒ ๊ฐ์์ ์ ์๋ค.
๋ค์์ผ๋ก๋ ํฌ๋กฌ extention์์ Web scraper๋ฅผ ์ฌ์ฉํด์ ์น์ฌ์ดํธ๋ฅผ ์ง์ ํฌ๋กค๋งํด ๋ณด์๋ค. ์๊ฐ๋ณด๋ค ์ฌ์ฉ๋ฒ์ ์์ธํ ์ค๋ช
ํด๋์๊ณ ์ดํด๊ฐ ์ฝ๋ค. Youtube : Web Scraper Intro. pagination ๋๊ฐ๋ง ์ฐธ๊ณ ํด์ ์น์ฌ์ดํธ ํฌ๋กค๋ง์ ์ฑ๊ณตํ์๋ค.[1]
์๊ฐ๋ณด๋ค ์น์ฌ์ดํธ ํฌ๋กค๋ง์ด ๋งค์ฐ ์ฌ์์ ๋๋๋ค. ๋๋ Python script๋ก ์ผ์ผ์ด ์์๊ฒ์ฌํด์ crawlingํด์ผ ํ ์ค ์์๋๋ฐ ํธ๋ฆฌํ chrome extention์ผ๋ก ์๊ณ ๋ฅผ ์์ฃผ ์ฝ๊ฒ ๋์๋ค.
๋ํ Chrome์ ์ฌ์ฉํ๋ฏ๋ก ์ด๋ค OS๋ฅผ ์ฌ์ฉํ๋ ์๊ด์๋ค.
{"startUrl":"https://www.design-seeds.com/blog/","selectors":[{"parentSelectors":["_root","nextpage"],"type":"SelectorLink","multiple":true,"id":"nextpage","selector":"div.nav-previous a","delay":""},{"parentSelectors":["_root","nextpage"],"type":"SelectorElement","multiple":true,"id":"element","selector":"article.parker-posts","delay":""},{"parentSelectors":["element"],"type":"SelectorText","multiple":false,"id":"collection_name","selector":"h4.entry-meta a","regex":"","delay":""},{"parentSelectors":["element"],"type":"SelectorImage","multiple":false,"id":"img_url","selector":"img.attachment-full","downloadImage":false,"delay":""},{"parentSelectors":["element"],"type":"SelectorText","multiple":false,"id":"title","selector":"h1.entry-title a","regex":"","delay":""},{"parentSelectors":["element"],"type":"SelectorText","multiple":false,"id":"date","selector":"time.entry-date","regex":"","delay":""},{"parentSelectors":["element"],"type":"SelectorText","multiple":false,"id":"owner","selector":"p a","regex":"","delay":""}],"_id":"designseeds"}
์ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์ฝ๋ฉํ๋ ๋ฐฉ์์ด ์๋๊ณ graph๋ฅผ ๋ง๋ค์ด์ ํ์ํ ์์๋ฅผ ํด๋ฆญํ๊ณ node๋ผ๋ฆฌ ์ฐ๊ฒฐ๋ง ํด์ฃผ๋ฉด ๋๋๊น ๋งค์ฐ ์ฝ๋ค. ์๊ฐ๋ณด๋ค ํฌ๋กค๋ง์ด ์ฌ์์ง๋ฉด์ ์ฐ๊ตฌ์ ํ์ํ user data๋ฅผ ์ฝ๊ฒ ์ทจ๋ํ ๋ฐฉ๋ฒ์ ์์๋ด์ ๊ณ์ ๋์์ด ๋ง์ด ๋ ๊ฒ ๊ฐ๋ค.
๊ฒฐ๊ณผ๋ฅผ csv๋ก ๋ค์ด๋งํฌ๋ฅผ ๊ฑธ์ด์ฃผ๋ฏ๋ก ๋ค์ด๋ฐ์ผ๋ฉด ๋.
๊ทธ๋ฆฌ๊ณ ๊ฐ๋จํ python, shell script๋ก image๋ค์ ๋ค ๋ฐ์ ์ ์์๋ค.
(์์ ์ค๋ช ๋ ์ฝ๊ฒ ์ํด์ ๋ ์ข์๋๋ฐ ์ํฅ์ด ์๊ณ ๋ญ์๋ฆฐ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ ์ ํฌ๋ธ ๋๊ธ์ด ๋ง์๋ค. ์ด์ ๋๋ฉด ๊ฐ์ฌํ ๋ฐ์๋จน์ด์ผ์ง.) โฉ