ํฌ๋กค๋ง - ์ธํฐ๋ท ์์ ์กด์ฌํ๋ ์น ๋ฌธ์๋ค์ ์ถ์ ํ์ฌ ํ์ํ ์ ๋ณด๋ฅผ ์์งํ๋ ๊ธฐ๋ฒ
์ผ๋จ ๊ฐ์ํ๊ฒฝ ๋จผ์ ์คํํด์ฃผ์ด์ผ ํ๋ค (ํ๋ก์ ํธ ๋ณ๋ก ๋ ๋ฆฝ๋ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ํด์)
pipenv shell (๊ผญ ํด๋น ํ๋ก์ ํธ ์ต์๋จ ์์น์์ ์์ฑ! ex) session4) - ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ์์
pipenv install requests
pipenv install bs4 (beautifulsoup4 : HTML๊ณผ XML ๋ฌธ์๋ฅผ ํ์ฑํ๊ธฐ ์ํ ํ์ด์ฌ ํจํค์ง - find ํจ์, select ํจ์ ์ด์ฉ)
*exit - ๊ฐ์ํ๊ฒฝ ๋๊ธฐ
pipenv install ํจํค์ง๋ช
pipenv uninstall ํจํค์ง๋ช
ํฌ๋กค๋ง์ ๊ธฐ๋ณธ์ ์ธ flow๋ 1. ์น ์ฌ์ดํธ url์ get ์์ฒญ -> 2. find๋ select ํจ์๋ฅผ ์ด์ฉํด์ ์ํ๋ HTML element ๊ฐ์ ธ์ค๊ธฐ -> 3. ์ํ๋ ๋ฐ์ดํฐ ๊ฒฐ๊ณผ๊ฐ ํํ๋ก ๊ฐ๊ณตํ๊ธฐ ๋ฐฉ์์ผ๋ก ์งํ๋๋ค.
1) url ์ฐ๊ฒฐ์ ์ํ main.py ๋ง๋ค๊ธฐ
2) ์ํ๋ ์ฃผ์์ ์์ฒญ ๋ณด๋ด๊ธฐ
์ฃผ๋ก query์ ๋ณ์๋ฅผ ๋ด์ ์ ๋ณด๋ฅผ ์ ์กํด์ get ์์ฒญ์ ๋ณด๋ด๋๋ฐ, url ๋ค์ ? ๋ก ์์ํ๋ฉฐ ๋ณ์์ ๊ฐ์ ์์ผ๋ก ๊ตฌ์ฑ๋๋ค.(๊ฐ ์์ &๋ก ๊ตฌ๋ณ)


get ์์ฒญ์ผ๋ก ํด๋น ํ์ด์ง ์ ๋ณด๋ฅผ egg.html์ ์ ์ฅํ๊ณ , egg_soup ๋ณ์๋ฅผ ์ด์ฉํด ํ์ฑ ๊ฐ๋ฅํ๋๋ก ์ ์ฅํด์ค๋ค.
3) ์ํ ๋ฆฌ์คํธ ์ถ๋ ฅ

find ์ find_all ํจ์๋ฅผ ํตํด ๋ชจ๋ ์ํ์ ๋ฆฌ์คํธ์ ์ ์ฅํด์ค๋ค.

์ฌ๊ธฐ์ ์ฒซ๋ฒ์งธ ์ํ์ ์ด๋ฆ์ ๊ฐ์ ธ์ค๋ ค๋ฉด ul > li> basicList_inner__eY_mq > basicList_title_3P9Q7 > a ์์ผ๋ก ์ ์ฅ
(๊ฐ๊ฒฉ, ๋ํ ์ผ๋ ๋ค ๋ง์ฐฌ๊ฐ์ง) ์๊ธฐ์๋ถํฐ๋ egg.py์ ์ ์ฅ

* ํ ์คํธ ์ถ์ถ ๋ฐฉ๋ฒ

4) ๋ฐ์ดํฐ ์ ์ฅ
์์ธ์ ๋ณด๋ ๋ฐฐ์ด๋ก ๋ด์ result์ ์ถ๊ฐํด์ฃผ๊ธฐ

๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ค๋ค

์ฝ๋๋ฅผ url ์ฐ๊ฒฐํ๋ ํ์ผ์ธ main.py์ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ ๊ฐ๊ณตํ๋ egg.py ๋ก ๋๋ ์ฃผ๋ฉด


์ฌ๊ธฐ์ main.py๋ฅผ ์์ ํด 1~10ํ์ด์ง ์ ์ฒด ์ํ ๋ชฉ๋ก ์ ์ฅ์ ํ ์ ์๋ค!

5) csv ํ์ผ๋ก ์ ์ฅ (DB์ ์ง์ ๋ฃ์ ์ ์๋ ํ์ผ ํ์!)
main.py ์ import csv ํ


์ด๋ฐ ์ฝ๋ ์ถ๊ฐ๋ฅผ ํตํด egg.csv๋ฅผ ๋ง๋ค ์ ์๋ค.
ํ์ง๋ง bs4์ ๊ฒฝ์ฐ ์น์ฌ์ดํธ์ ๊ตฌ์กฐ๊ฐ ๋ฐ๋๋ฉด ์ฝ๋๋ฅผ ๋ค์ ์์ฑํด์ผ ํ๊ณ , ๋์ ์ผ๋ก ๋ง๋ค์ด์ง ์น์ฌ์ดํธ ์ฝ๋๋ฅผ ์ฝ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ Selenium์ ํตํด ์ ๋ณด๋ฅผ ์์งํ๋ ๊ฒ์ด ๋ ํธ๋ฆฌํ๋ค. selenium ์ด์ฉ ์ ์น ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํด์ ์น ํ์ด์ง๋ฅผ ๋์ ํฌ๋กค๋ง ํ ์ ์๋ค. ํฌ๋กค๋ง ๊ฒฐ๊ณผ์ ํน์ html ์๋ฆฌ๋จผํธ์ ๋ง์ฐ์ค ํด๋ฆญ๋ฅผ ๋ฐ์์ํค๊ฑฐ๋ , input ์๋ฆฌ๋จผํธ์ ํ ์คํธ๋ฅผ ์ฑ์๋ฃ๊ธฐ ๋ฑ์ด ๊ฐ๋ฅํ๋ค.
https://www.hanumoka.net/2020/07/05/python-20200705-python-selenium-install-start/
Selenium ์ค์นํ๊ธฐ ๋ฐ ํฌ๋กค๋ง ์์
๋ค์ด๊ฐ๊ธฐpython์ผ๋ก ํฌ๋กค๋ง์ ํ ๋, ํฌ๋กค๋ง ๋์์ธ ์น ํ์ด์ง์ ๋์ ์ธ ๋์์ ๊ณ๋ค์ฌ์ ํฌ๋กค๋ง์ ํ ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฐ, ๊ทธ๊ฒ์ด selenium ์ด๋ค. selenium ์ฅ์ ์น ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ
www.hanumoka.net
์ ๋ ๋์ ํฌ๋กค๋ฌ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ - ๋ปฅ๋ซ๋ฆฌ๋ ํ์ด์ฌ ์ฝ๋ ๋ชจ์
์ ๋ ๋์ ์ ๋ฐ์ ๊ดํ์ฌ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํ๋ค. ์ด ๋ฌธ์๋ ์ ๋ ๋์ ๋ฒ์ 3 ๊ธฐ์ค์ด๋ค. ์ต๊ทผ 4๋ฒ์ ์ด ์ถ์๋์์ผ๋ ์ฌ์ฉ๋ฐฉ๋ฒ์ด ์ฝ๊ฐ ๋ค๋ฅด๋ ์ด ๋ถ๋ถ์ ํ์ธํ๊ธธ ๋ฐ๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์ด๋ ์์๋ ๋ฐ๋ก
pythondocs.net
https://dev-dain.tistory.com/91
[์์กดํ ํํ ๋ฆฌ์ผ] ํ์ด์ฌ selenium์ผ๋ก ๋ฐ์ดํฐ ํฌ๋กค๋ง
์์ ์๋ beautifulsoup4๋ฅผ ์ด์ฉํด์ ํฌ๋กค๋ง์ ํ๋๋ฐ, ์ด๋ฒ์๋ selenium์ผ๋ก ํ๊ธฐ๋ก ํ์ต๋๋ค. ๋น์ฅ ํ์ํ ์ฝ๋๋ฅผ ์ง๊ธฐ ์ํด ํ์์ ์ธ ์ฌ์ฉ๋ฒ๋ง ์ตํ๊ณ ๋ฐ๋ก ์ฌ์ฉํ์ต๋๋ค. beautifulsoup4์ ์ ๋ ํ ํ
dev-dain.tistory.com
https://www.youtube.com/watch?v=yQ20jZwDjTE
์ด๊ฑฐ ๋ณด๊ณ ์ดํด ๋ฐ ์ ์ฉ..!
ํด์ ์์ฑํ ๋ค์ด๋ฒ์ง๋ ํฌ๋กค๋ง ์ฝ๋ (selenium ์ฌ์ฉ)




๋ค์ ํ์ด์ง ๋ฒํผ์ ๋๋ฅด๋ selenium์ด ์ ์ฉ์ด ์๋๋๋ฐ ์ด๊ฑด ์ฝ๋ ๋ค์ ์ง๋ณด๊ธฐ..(์ฝ๋ ๋ฌธ์ ๋ผ๊ธฐ๋ณด๋จ ์ด๋ฏธ์ง ํด๋ฆญ์ ์๋ ํฌ๋กค๋ง์ด ์ ์๋จน๋๋ค๊ณ ํ๋ค.)
*๋ค์ ์คํํ๋๋ chromsdriver ๊ฒฝ๋ก ์ง์ ์ค๋ฅ ๋จ๊ธธ๋ ์ฝ๋ ์์
cmd ์์ pip install webdriver-manager
python ์
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
์ถ๊ฐํด์ฃผ๊ธฐ
+) ์ฃผ๊ธฐ์ ์ผ๋ก ํฌ๋กค๋ง์ ํ๊ธฐ ์ํด celery๋ฅผ ์ฌ์ฉํด๋ณด๋ คํ์ผ๋ ์คํจ..
๊ฒฐ๊ตญ ๋ ธํธ๋ถ ๋ด์ ์๋ ์์ ์ค์ผ์ค๋ฌ๋ก ์ ํด์ง ์๊ฐ์ ์ ํด์ง ํ์ด์ฌ ํ์ผ์ ์คํ์ํค๋๋ก ์ค์

์คํจํ์ง๋ง... ์ ํด์ง ์๊ฐ์ ์์์ ๋๋๋ฐ ํฌ๋กค๋ง ๋ชปํ๊ณ ๋๊น (spiders๋ง ๋จ๋ ์คํํ๋ฉด ์ ์ ์๋)
celery๋ ์ด๋ ๊ฒ settings.py ํ์ผ์ด ์๋ ๊ณณ์ celery.py ์ถ๊ฐํด์ฃผ์ด์ผ ํจ

settings.py์ celery ์ค์ผ์ค ์ถ๊ฐ

model ์๋ ๊ฒฝ๋ก์ tasks.py ์ถ๊ฐํด์ ์ค์ผ์ค ์ค์ ํด์ผ ํจ

+) ์ฟ ๋ ํ๋ก์ ํธ์์ ํฌ๋กค๋ง ํ์ ๋๋ scrapy์์ spiders ์ฌ์ฉ

'LIKELIONxNEXT 10๊ธฐ๐ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Next x Likelion] - django MTV, git ignore (0) | 2022.04.25 |
|---|---|
| [Next x Likelion] Git & Github (0) | 2022.03.14 |