ํด๋น ํ๋ก์ ํธ๋ 2019๋
๊ณผ์ ๋ก ๋ง๋ค๊ฒ ๋ ํฌ๋กค๋ง์ผ๋ก
์๋ URL์ธ G-market๊ณผ GS-shop์ ์์ดํ
์ ํฌ๋กค๋งํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์๋ค.
Gmarket: https://m.gmarket.co.kr/n/superdeal?categoryCode=400000
Gsshop: https://www.gsshop.com/shop/sect/sectL.gs?sectid=1378
Shopping mall Crawling Python Code
- Database : MongoDB
- Library
- Lxml : ์ ์ ํ์ด์ง์์ ์ฌ์ฉ
- Selenium : ๋์ ํ์ด์ง ์ ๊ทผ์์ ์ฌ์ฉ
- ๋ถ์ฐ ์ฒ๋ฆฌ
- Async.io : ๋น๋๊ธฐ ์ฒ๋ฆฌ
- motor : MongoDB ๋ถ์ฐ ์ฒ๋ฆฌ ๋๋ผ์ด๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Crawling ๋์ : G Market, GS Shop
- Chrome Driver : https://sites.google.com/a/chromium.org/chromedriver/home
| Module | Version | Description |
|---|---|---|
| python | 3.6 | Basic |
| lxml | 4.5.1 | Crawling |
| selenium | 3.141.0 | Crawling |
| motor | 2.4.0 | Async Mongo driver |
| pymongo | 3.12.0 | Database |
| chrome driver | Your Chrome | Dynamic Page |
ํฌ๋กค๋ง์ ์์ ํ๋์ฝ๋ฉ์ ํ์ํ ์ ๋ณด๊ฐ ์๋ค. ์์ง์ ํ๊ณ ์ ํ๋ ์ผํ๋ชฐ์ URL ๋ฐ ์ํ ์ ๋ณด๋ฅผ ์ด๋ค ์นดํ ๊ณ ๋ฆฌ์์ ๊ฐ์ ธ์ฌ์ง ๊ทธ๋ฆฌ๊ณ ์ํ์ ์ ๋ณด๊ฐ ์๋ ํ๊ทธ๋ฅผ ์ด๋ป๊ฒ ์ ๊ทผํ ๊ฒ ์ธ๊ฐ ๋ฑ ๊ณ ๋ คํ ์ ์ด ๋ง๋ค. ๊ทธ๋ฆฌ๊ณ ์ผํ๋ชฐ ์ฌ์ดํธ๊ฐ ๋ณ๊ฒฝ์ด ์์ ๊ฒฝ์ฐ, ์ด ์์ ์ ์ต์ํ์ผ๋ก ํ ์ง, ํ์ด์ง๊ฐ ๋์ ์ผ ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๊ณ ์ํ ์ ๋ณด๊ฐ ์ํ ์ ๋ณด ์๋ฌ๋ก ์์ธ์ฒ๋ฆฌ ๋ฑ ๊ธฐ์ ์ ์ผ๋ก๋ ์๊ฐํ ์ ์ด ๋ง๋ค.
์ฐ์ ์ต๋ํ ๊ฐ๋จํ ์์ง ํ๋ก์ธ์ค๋ก์ ์ผํ๋ชฐ URL ๋ฐ ์ํ ํ๊ทธ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ , ํด๋น ์ ๋ณด๋ฅผ ํ ๋๋ก ํฌ๋กค๋ง์ ํ๊ธฐ๋ก ํ๋ค.
์๋ ์ฝ๋๋ ๋ ๊ฐ์ง ์ผํ๋ชฐ์ URL๊ณผ ์์งํ๊ณ ์ ํ๋ ์นดํ ๊ณ ๋ฆฌ๋ฅผ URL Parameter๋ก์ ๊ฐ ๋น๋๊ธฐ๋ก ์ ๊ทผํ์ฌ ์ํ ์ ๋ณด๋ฅผ Xpath๋ฅผ ์ด์ฉํ์ฌ ๊ธ์ด ํ๋์ ๋ฆฌ์คํธ๋ก ์ ์ฅํ ํ, ๋น๋๊ธฐ Mongo Instert๋ฅผ ์ด์ฉํ์ฌ ์ ์ฌํ๋ค.
์ ์ ํ์ด์ง์ ๊ฒฝ์ฐ lxml๋ฅผ ์ด์ฉ, ๋์ ํ์ด์ง์ ๊ฒฝ์ฐ selenium chrome headless driver ์ด์ฉ.
- pip install -r requirements.txt
- install chrome
- download chrome driver
- execute
์์ ์ ๋ง๋ ๊ฑฐ๋ผ์ ์ผํ๋ชฐ ์ํ html ๊ด๋ จํด์ ๋ณ๊ฒฝ ํด์ฃผ์ ์ผ ๋ ๊ฒ ๊ฐ์ต๋๋ค. main.py์์ ์ฃผ์์ฒ๋ฆฌํด์ ์์ง, ์ ์ฌ๋ฅผ ๋ณ๋๋ก ํ ์ ์์ต๋๋ค. Selenium์ ์ฌ์ฉ์ ๋์ ํ์ด์ง์ผ ๊ฒฝ์ฐ๋ฅผ ์ํด ์ฌ์ฉํ์ผ๋ฉฐ ํ์ด์ง๊ฐ ๋์ ์ด ์๋๋ฉด lxml๋ง ์ฌ์ฉํด์ ๋ ๋น ๋ฅด๊ฒ ์์งํ ์ ์์ต๋๋ค. ์ฝ๋ ๋ด์ ์ ๋ก๋ ๋์ด์๋ chome driver์ ๊ฒฝ์ฐ window์ฉ ์ ๋๋ค.