1. ๋์ ? ์ ์ ? ์ฝ๊ฒ ์ฝ๊ฒ ์ค๋ช
ํ์๋ฉด ์ ์ ํ์ด์ง = html ๋์ ํ์ด์ง = ajax ๋! ํ๊ณ ์ดํด๊ฐ ๋๋ค๋ฉด ์ข๊ฒ ์ง๋ง, ์ดํด๊ฐ ๋์ง ์์ ์ฌ๋๋ค์ ์ํด ๋ง๋ถ์ด์๋ฉด, html๋ก๋ง ๊ตฌ์ฑ๋ ํ๋ฉด์ ์๋ก๊ณ ์นจํ๋ฉด ํ๋ฉด์ด ๊น๋นก! ๊ฑฐ๋ฆฐ๋ค. ๊ทผ๋ฐ html ์์ ajax๋ก ๊ตฌ์ฑ๋ ๋์ ํ์ด์ง(์๋ฅผ ๋ค์ด ๋๊ธ์ฐฝ)๋ ์๋ก๊ณ ์นจ์ ํ๋คํด์ ๊ทธ ํด๋น ํ์ด์ง๊ฐ ๊น๋นก! ๊ฑฐ๋ฆฌ์ง ์๋๋ค. ์ด ๊น๋นก! ๊ฑฐ๋ฆด๋ ๋จผ๊ฐ ์์ฒญ์ด ์๋ค ๊ฐ๋ค ํ๋๋ฐ, ์ด ๊ณผ์ ์ด ์~๋นํ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ํ์ด ๋ง๋ค. ๊ทธ๋์ ๋๋ถ๋ถ์ ํ์ด์ง๋ค์ ajax๋ก ๊ตฌ์ฑ๋ ๋ถ๋ถ์ ํฌํจํ๊ณ ์๊ณ , ์ฐ๋ฆฌ๊ฐ ํฌ๋กค๋ง ํ ๋ถ๋ถ์ด ์ฌ๊ธฐ์ ํด๋น๋ ์๋ ์๋ค. ๊ทผ๋ฐ, ๊ธฐ์กด ํฌ์คํ
ํ ๋ด์ฉ๋๋ก ๊ธฐ์ด selenium ํ์ฉ๋ฒ๋ง์ ์ฌ์ฉํด ํฌ๋กค๋ง์ ์งํํ๋ฉด, ์ด ๋์ ํ์ด์ง๋ ๊ธ์ด์ฌ ์ ์๋ค. ์๋..
What is the Headless Chrome?? - ๋จธ๋ฆฌ ์๋ ํฌ๋กฌ์ด ๋์ฒด ๋ฌด์? ใ
ใ
๊ทธ๋ฅ ์ฐฝ์ด ์๋ ํฌ๋กค๋ง์ด๋ค. ๊ตณ์ด ํ๋ฉด์ ๋์ฐ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ธ์ด์์ ์ ์ฅ๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์์ ์๋ PhantomJS๋ผ๋ ๊ฒ์ ์ผ์ง๋ง ์์ฆ์๋ ๊ฐํธํ๊ฒ selenium webdriver์ ์ต์
๊ฐ์ ์ค์ ๊ฐํธํ ๊ตฌํํ ์ ์๋ค. chrome_options = webdriver.ChromeOptions() #์ฐฝ ๋์ฐ์ง ์๋ ์ต์
chrome_options.add_argument('headless') chrome_options.add_argument('window-size=1920x1080') #gpu ์ฌ์ฉํ์ง ์๋ ์ต์
chrome_options.add_argument('disable-gpu') # ์๋ฒ์ ์์ฒญ..
์ฐ์ selenium์ด ๋ญํ๋ ๊ฑด์ง ์ผ๋จ ์ ํ์๊ฐ ์๋ค. selenium์ ์๋ํํ๋ ํ๋ ์ ์์ด๋ผ๊ณ ์ดํดํ๋ฉด ์ฝ๋ค. ๋ง ๊ทธ๋๋ก ์๋ํ๋ง์ ๋ด๋นํ๋ ๊ฒ์ด๋ค. ์๋์ ์ผ๋ก html์ ํ๋ํ๋ ๋ด๊ฐ๋ฉด์ ํ๊ทธ์ ์์ฑ๊ฐ๋ค์ ์ฐพ์์ ์ด๊ฑธ ๊ฐ์ ธ์ค๋ ๋จธ ๊ทธ๋ฐ ๊ท์ฐฎ์ ์ผ๋ค์ ๋์ ํด์ฃผ๋ ์ผ๋ค์ ๋ด๋นํ๋ค. ์ ๊ตณ์ด? ์ด๋ ๊ฒ? ๋ผ๊ณ ํ๋ค๋ฉด, ์ฌ์ค ํฌ๋กค๋ง์ด ๋ฑํ ํฉ๋ฒ์ ์ธ ๋๋์ ์๋ ๊ฒ์ด๋ค. ๋ด๊ฐ ์ด๋ค ํ์ด์ง์ ์ฃผ์ธ์ธ๋ฐ ๋๊ฐ ๋ด ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ง ๊ธ์ด๊ฐ๋ฉด ๊ธฐ๋ถ์ด ์ฉ ์ข์ง๋ ์์ ๊ฒ์ด๋ค. ๊ทธ๋์ ๊ฑฐ์ ๋๋ถ๋ถ์ ์ฌ์ดํธ๋ค์ ์ด๋ฐ ๊ฑธ ๋ง์ ๋์๋๋ฐ, ์
๋ ๋์์ผ๋ก ํ์ฌ๊ธ ๋ง์น ์ฌ์ฉ์๊ฐ ๋ณด๋ ๊ฒ์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ธ์ด์ค๊ฒ ํ๋ ๊ฒ์ด๋ค. ๋ฌผ๋ก ๊ฐ์ ์์ดํผ๋ก ๊ณ์ ์ ๊ทผํ๋ฉด ์ด๊ฒ๋ ๋งํ๊ธด ํ๋ค ใ
ใ
ใ
ใ
"๋น์ ์ ๋ก๋ด์
๋๊น?" ์๋ฐ๊ฑฐ๋ ๊ทธ์ค์ ..
๋ฐ์ดํฐ ๋ถ์์ ์์ฅฌ ์ด์! ๋ฐ์ดํฐ ์์ง! ํฌ๋กค๋ง์ ์์ํด๋ด์ผ๊ฒ ๋ค VScode๋ก ์ฝ๋ ์
๋ ฅํด๊ฐ๋ฉด์ ๋์ฐ๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ง๋ง, ์ฌ์ค jupyter notebook์ด ๊ฐํธํ๋ฏ๋ก ์ฌ์ฉํ๋ค. ์ฃผํผํฐ ๋
ธํธ๋ถ ํ๋กฌํํธ์ ์ฌ์ฉํ ๊ฐ์ํ๊ฒฝ์ activate ํด์ฃผ๊ณ 1. Selenium ์ค์น 2. OS ํ๊ฒฝ, chrome ๋ฒ์ ์ ๋ง๋ webdriver ๋ค์ด๋ก๋ https://sites.google.com/a/chromium.org/chromedriver/ ChromeDriver - WebDriver for Chrome WebDriver for Chrome sites.google.com ํฌ๋กฌ ๋ฒ์ ํ์ธ์ ํฌ๋กฌ ํ๋ฉด ์ค๋ฅธ์ชฝ ์๋จ ๋๋ณด๊ธฐ(์ ์ธ๊ฐ) > ๋์๋ง > ํฌ๋กฌ ์ ๋ณด ์์ ํ์ธ๊ฐ๋ฅ ํ์ธ ํ os ์ ๋ง๊ฒ ๋ค์ด ๋ฐ๋๋ฐ, ๋ด ..
selenium.common.exceptions.webdriverexception: message: unknown error: cannot find chrome binary ์ฅ์ฅ ํ 5์๊ฐ์ ํค๋ฉ ๊ฒ ๊ฐ๋ค..ใ
.. ์๋ฌ ์์ธ์ chrome ๊ณผ chrome driver๊ฐ ๊ฐ์ ๊ฒฝ๋ก์ ์์ด์ผํ๋๋ฐ wsl์ ์ฌ์ฉํ๊ณ , ๋ ๊ฑฐ์ crawler๋ฅผ ๊ตฌ๋ํด๋ณด๋ ค๋ ์์ค์ ( ๋ ๊ฑฐ์ ํ๊ฒฝ์ ํธ๋ฃจ linux๋ค ) ์๊ธด ๋ฌธ์ .. ๊ทธ๋ฅด๋๊น ํฌ๋กฌ์ ์๋์ฐ ํ๊ฒฝ์์ ๊น๊ณ , ์ฐพ๋๊ฑด linux ๋ฒ์ ์์ ์ฐพ์ผ๋ ค๋๊น ์ด๊ฒ ๊ฒฝ๋ก๊ฐ ์ ์ฝํ๋ ๊ฒ ๊ฐ๋ค ์ค๊ฐ์ ๊ฑ ์..์๋์ฐ ๋ฒ๋ฆด๊น?ใ
์ถ์๋ค ใ
ใ
...; ์ํผ๊ฐ์~~ 1. chrome driver path์๋ค๊ฐ chrome ์ ๋ ์ค์นํด์ค๋ค wget https://dl.google.com/l..
๋จ๊ตฌ๋ก ๊ทผ์ฒ์ ์ ์ ๋ญ๊ฐ์ ์ด ์๊ฒจ์ ํฌ์ฅ์ ํด๋ดค๋ค. ํ์ฌ ์ด๋ฒคํธ (~9์ 22์ผ) ์ค์ด๋ผ ํ๋ผ์ด๋๋ ์๋
์ค ์ฌ์ด์ฆ๋ฅผ 1000์์ฉ ํ ์ธ + ์น์ฆ๋ณผ 2๊ฐ ์ฆ์ ํ๊ณ ์๋ค. ์ด๋ฒคํธ ๊ธฐ๊ฐ์๋ ์ ์ฌ์ด์ฆ๋ ์ฃผ๋ฌธ์ด ์๋๋ค๊ณ ํ๋ ์ฐธ๊ณ ํ๋๋ก ํ์. ์ค ์ฌ์ด์ฆ ๋งค์ด๋ง, ์น์ฆ์์ค ์ถ๊ฐ ํ๋๋ฐ, ์์ ๊ฝค ํ์๊ณ , ์น์ฆ์์ค๊ฐ ํนํ ๋ค๋ฅธ ์ง ๊ตญ๋ฌผ ์ฃผ๋ ์ฉ๊ธฐ์ ๋ค์ด์๋ค. ๋ง์ด ํ์์ธ๊ฑฐ ๊ฐ๋ค. ๊ทผ๋ฐ ๋ ์ด๋ฐ ์น์ฆ๋ณผ์ ๋ณ๋ฃจ. ๋๋ฌด ๋ก๊ฐ๋ค. ์ด์ดํ ๋ญ๋ค๋ฆฌ์ด๋ก ๋์ด์๊ณ , ํฌ๊ธฐ๊ฐ ์์๋ณด์ด์ง๋ง ๊ทธ๋์ ๋ ๋ง์๋ ๋น๋ฒ์ด ์๋๊น์ถ๋ค. ์ฃผ๋ฌธ ๋ฐ๋ ์ฆ์ ์กฐ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ ธ์ ๊ทธ๋ฐ๊ฐ ํ์ฐธ ์ง๋๋ ๋๋ฌด ๋ง์๋ค. ๋ถ๋ ์ด ๋ง์ ์์ง ์๊ธฐ๋ฅผ.. ๋ง์๋ ๋ญ๊ฐ์ ์ง์ด ์๊ฒจ์ ๋๋ฌด ์ข๋ค.
๋๋์ด ๋๋ ๋ฐฑ์ 1์ฐจ ์ ์ข
์ ์๋ฃํ๋ค. 1์ฐจ๋ ์ฌ๋๋ค์ด ํ๋ง ๋ป๊ทผํ๋ค๊ณ ํ๋๋ฐ ๋ป๊ทผํ ์ค๋ ๋ชจ๋ฅผ.. ๊ทผ๋ฐ ๋ฐฉ๊ตฌ๊ฐ ์์ฒญ ๋์จ๋ค ใทใท.. ๋ฐฑ์ ์ ์ข
์ ํ๊ณ ๋๋ฉด ์ ์ข
์ฆ๋ช
์๋ฅผ ์ฃผ๋๋ฐ ์ฐ๋ฆฌ ํ์ฌ ๊ฐ์ ๊ฒฝ์ฐ์ ์ด๊ฑธ ์ ์ถํด์ผํ๋ค. ์ ๋ถ24๋ ์๋ฐฉ์ ์ข
๋์ฐ๋ฏธ ๋๋ฆฌ์ง์์๋ ๋ฐ๊ธ ๊ฐ๋ฅํ๋ค๊ณ ํ๋, ์์ด๋ฒ๋ ธ๋ค ํด๋ ๋นํฉํ์ง ๋ง์. ์ฌํผ, ๋ฐฑ์ ์ ์๋ฃํ๊ณ ์ดํ '์ฟ ๋ธ'๋ฅผ ๋ค์ด ๋ฐ์ผ๋ฉด ์ ๋ ๊ฒ ์ด๋ฏธ์ง์ฒ๋ผ ์๋ฐฉ์ ์ข
์ฆ๋ช
์๋ฅผ ๋ฐ์ ์ ์๋ค. ๋ด ๋๋
๋ฐฐ๋ค์ ๋ค ์ ๊ฑฐ ์ธ์คํ ์คํ ๋ฆฌ์ ์ธ์ฆํ๋๋ฐ ๋๋ ๋๋ ํด๋ฒ ใ
ใ
ใ
ใ
๋๋ ์๋์ด๋ ๊ฐ์ด ๋ง์๋๋ฐ ๋๋ค ๋ฐฉ๊ตฌ๊ฐ ์ฌํ๊ฒ ์ฆ์๋ค;; ์ฐพ์๋ณด๋ ํ์ด์ ๋ถ์์ฉ ์ค์ ํ๋์ผ ์ ์๋ค๊ณ ..; ใ
ใ
..๋ถ์์ฉ์น๊ณค ๊ด์ฐฎ์์ ๊ทธ๋๋ง ๋คํ์ฐ ๊ทธ๊ฑฐ ๋ง๊ณค ํ๋ ์์ํ๋น
๋ด๊ฐ ๋ณด๋ ค๊ณ ๋ง๋๋ ๊ฐ์ํ๊ฒฝ ์ค์ ์ธํ
๊ณผ์ pyenv๋ nvm rvm์ฒ๋ผ ์ธํฐํ๋ฆฌํฐ ์์ฒด์ ๋ฒ์ ๊น์ง ๊ด๋ฆฌํด์ฃผ๋ ํฐ ๊ฐ๋
์ด๊ณ , virtualenv๋ ๊ทธ์์ ์ธ์ธํ ๊ฐ์ํ๊ฒฝ ๊ตฌ์ฑ์ ๋๋ ์ฃผ๋ ์ญํ ์ด๋ค. ์ฆ, pyenv + virtualenv ๋ฅผ ์ฐ๋ฉด ๊ฐ๊ฐ์ ํ
์คํธํ ํ๊ฒฝ์ ์ธํฐํ๋ฆฌํฐ ๋ฒ์ ๊น์ง ํธํ๊ฒ ๋ฐ๊ฟ๊ฐ๋ฉด์ ๊ด๋ฆฌํ ์ ์๋ค๋ ๊ฒ ์์ง๊น์ง ํ์ ์๊ฒ ์ง๋ง ์ฐ๋ ๊น์ ์จ๋ณด๋ ๋๋์ฐ ์ผ๋จ os ํ๊ฒฝ์ 16.04 ์ฐ๋ถํฌ ๋ฆฌ๋
์ค pyenv ์ฌ์ฉํ๊ธฐ 1. pyenv ์ค์น git clone https://github.com/pyenv/pyenv.git ~/.pyenv 2. bash ์ค์ # vi ~/.bashrc export PYENV_ROOT="$HOME/.pyenv export PATH="$PYENV_ROOT/bin..
์ ํ ํฌ ํ์ด์ฌ์์๋ ํ์ด์ฐธ์ ๊ถ์ฅํ์ง๋ง vscode๋ง ์จ์๋ ๋๋ ํ์ด์ฐธ์ ๋ฌํ๊ฒ ์ดํด๋ฆฝ์ค ๊ฐ์์ ์ซ๋ค ใ
ใ
๊ทธ๋์ vscode์์ ๋ง๋ค์ด ๋์ ๊ฐ์ ํ๊ฒฝ์ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ํฌ์คํ
ํ๋๋ก ํ๊ฒ ๋ค. 1. F1์ ๋๋ฅด๊ณ select interpreter ์์ interpreter path ์ฆ, ๊ฒฝ๋ก์ฐพ๊ธฐ๋ฅผ ํ๋ค ์ฐ๋ฆฌ๊ฐ ์์ ์ ๋ง๋ค์ด ๋์ venv/flask_sample_pjt ํ์์ Scripts ๋๋ ํ ๋ฆฌ ์์ python.exe ํ์ผ์ด ์์ ๊ฒ์ด๋ค ์๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ์ฐพ๊ณ ์ ํ๋ ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ์ด๋ค. ํ์ด์ฌ์ด ์ธํฐํ๋ฆฌํฐ์ธ ๊ฑธ ๋ชจ๋ฅด๋ ์ฌ๋์ ์๊ฒ ์ง? 2. ctrl + ` ๋ก cmd ์ฐฝ์ ์ด์ด๋ณธ๋ค ( ๋ถ์ . ์๋ฌ ์ก๊ธฐ) 1๋ฒ์ ์์
์ผ๋ก ์ฐ๊ฒฐ๊น์ง๋ ์๋ฃ ๋๊ฑด๋ฐ, ์ด์์ ๋ ๋ฐ๋ก ๊ฐ์ํ๊ฒฝ์ผ๋ก ์ ์์ด..
https://wikidocs.net/book/4542 ์ ํ ํฌ ํ๋ผ์คํฌ **์ ํ ํฌ ํ๋ผ์คํฌ ์คํ๋ผ์ธ ์ฑ
์ถ๊ฐ !! (2020.11)** * [์ฑ
๊ตฌ์
์๋ด](https://wikidocs.net/102760) wikidocs.net ์ฐ์ ์ด ๋งํฌ๋ฅผ ์ด์ฌํ ๋ฐ๋ผํ๋ค๋ ์ ์๋ฆฌ๊ณ ์์ํ๋ค..! ์ฃผํผํฐ ๋
ธํธ๋ถ์ ์ฌ์ฉํ์ ๋ ์๋์ฝ๋ค๋ก ๊ฐ์ ํ๊ฒฝ์ ์ค์ ํ๋ ๊ฑฐ์ฒ๋ผ ๋ก์ปฌ์์ ์์
ํ ๋ ํ๋ก์ ํธ๋ง๋ค ํ๊ฒฝ ์ค์ ๊ตฌ์ฑ์ด ๋ค๋ฅผ ์ ์์ผ๋, ๊ฐ์ ํ๊ฒฝ์ ๋จผ์ ์ค์ ํด์ฃผ๊ธฐ๋ก ํ๋ค. ์ผ๋จ ๋๋ ์ ๋งํฌ์ ๋์ ์๋ ๊ฒ์ฒ๋ผ ์๋์ฐ os ์ ์ ๋ผ์ ๊ฑ ๋๋ ํ ๋ฆฌ๋ง ๋ด ๋ง๋๋ก ์ค์ ํ๋ฉด์ ์ ๋ฐ๋ผํด๋ดค๋ค ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ sample_pjt๋ก ์ ํ๊ณ ์์
๋๋ ํ ๋ฆฌ๋ flask_sample_pjt๋ก ์ ํ๋ค. venvs๋ ๊ฐ์ํ๊ฒฝ ๋ชจ์ ๋..