์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- error
- ํ๋ก์ ํธ
- ๋ ธ๋ง๋์ฝ๋
- ์ฝ๋ฉ์ ํ
- ๊ตญ๋น์ง์
- CSS
- react
- JS
- KDT
- ๊ทธ๋ฆฌ๋
- javascript
- mongodb
- heapq
- ํ๋ก ํธ์๋
- ์ฝ๋ฉ
- HTML
- Til
- fe
- Python
- ํฌ๋กค๋ง
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- node.js
- ์ฝ๋ฉํ ์คํธ
- ๊ฐ๋ฐ
- ๋ชจ๊ฐ์ฝ
- ํ ์ดํ๋ก์ ํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋๋ฆผ์ฝ๋ฉ
- ํ์ด์ฌ
- Today
- Total
๋ชฉ๋กํฌ๋กค๋ง (11)
๐ฑ → ๐ณ
#15. ๋์ ํฌ๋กค๋ง โค ๐ ์ ๊ท ํ์ ๊ฒ์ํ XPath ์ฌ์ฉ ์ด์ 1. id, class์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ํฌ๋กค๋ง์ ์งํํ ์ ์๋ค. 2, html ์์๋ค์ ํจํด์ ํ์ ํ๊ธฐ ์ฝ๋ค โ XPath์ ํจํด ์ต์๋จ ๊ธ์ XPath /html/body/div[1]/div/div[4]/table/tbody/tr[1]/td[1]/div[3]/div/a ๊ทธ ๋ฐ๋ก ์๋ ๊ฒ์๊ธ์ XPath /html/body/div[1]/div/div[4]/table/tbody/tr[2]/td[1]/div[3]/div/a ์ธ๋ฒ์งธ ๊ฒ์๊ธ์ XPath /html/body/div[1]/div/div[4]/table/tbody/tr[3]/td[1]/div[3]/div/a ์ค๊ฐ์ ์กด์ฌํ๋ tr ํ๊ทธ์ ๋ฒํธ๊ฐ ํ๋์ฉ ์ฆ๊ฐํ๊ณ ์๋ ๊ฒ์ ํ์ธ -> ..
#14. ๋์ ํฌ๋กค๋ง โฃ ๐ ํฌ๋กค๋ง ๋์ ์ฌ์ดํธ ์ดํด๋ณด๊ธฐ ์ฝ๋ฎค๋ํฐ ์นดํ์ ์ ์ํ์ฌ ์ ๊ท ํ์ ๊ฒ์ํ์ ๋ด์ฉ ์์ง 1๏ธโฃ ๋ค์ด๋ฒ ๋ก๊ทธ์ธ ํ์ด์ง ๐ [๋ค์ด๋ฒ: ๋ก๊ทธ์ธ] ๊ทธ๋ฆผ์์๋ ๋ณผ ์ ์๋ฏ, ์์ด๋ ์ ๋ ฅ, ๋น๋ฐ๋ฒํธ ์ ๋ ฅ, ๋ก๊ทธ์ธ ๋ฒํผ ํด๋ฆญ ์์๋ก ์์ ์ ์งํํด์ผ ํ๋ค. ๊ธฐ์กด์๋ ์๋์ผ๋ก ๊ฐ์ ์ ๋ ฅํ๊ธฐ ์ํด, send_keys ํจ์๋ฅผ ์ด์ฉํ์ง๋ง ๋ค์ด๋ฒ๋ ์๋ํ ์ํํธ์จ์ด๋ฅผ ๋ง๊ณ ์๊ธฐ ๋๋ฌธ์, send_keys ํจ์๋ฅผ ์ฌ์ฉํด ๋ก๊ทธ์ธ์ ์๋ํ๋ฉด ์๋์ ๊ฐ์ด ์๋์ ๋ ฅ๋ฐฉ์ง ์ด๋ฏธ์ง๊ฐ ๋์จ๋ค. ์ด๋ฐ ๊ธฐ๋ฅ์ ํผํ๊ธฐ ์ํด์, selenium์์ execute_script๋ผ๋ ํจ์๊ฐ ์กด์ฌํ๋ค. ์ ๋ ฅ๋ฐ์ JavaScript ์ฝ๋๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ์คํ์ํค๋ ํจ์์ด๋ค. driver.execute_script("JS ์คํฌ๋ฆฝํธ") ์..
#13. ๋์ ํฌ๋กค๋ง โข ๐ ๊ตฌํํ ์์ค์ฝ๋ 2๊ฐ์ ์์ค์ฝ๋๋ฅผ ๊ตฌํํจ โ ์ฒซ ๋ฒ์งธ ์์ค์ฝ๋ ์๋จ์ด ๋ฒ์ญ ์ฌ๋ฌ ๋ฒ ์คํ ๋ฒ์ญ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ 'my_papago.csv' ํ์ผ์ ์ ์ฅ โ ๋ ๋ฒ์งธ ์์ค์ฝ๋ ์๋จ์ด ๋ฒ์ญ ์ฌ๋ฌ ๋ฒ ์คํ 'my_papago.csv' ํ์ผ์ ์๋ ์๋จ์ด์ผ ๊ฒฝ์ฐ, ์ ์ฅํ์ง ์์ 'my_papago.csv' ํ์ผ์ ์๋ ์๋จ์ด๋ ๋ฒ์ญ ๊ฒฐ๊ณผ ์ ์ฅ ๐ ์ฒซ๋ฒ์งธ ํ์ด์ฌ ์ฝ๋ ์์ฑ from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.by imp..
#11. ๋์ ํฌ๋กค๋ง โก ๐ํฌ๋กค๋ง ๋์ ์ฌ์ดํธ ์ดํด๋ณด๊ธฐ ์ค๋์ ํํ๊ณ ๋ฅผ ์ฌ์ฉํ ๋ฒ์ญ๊ธฐ๋ฅผ ๋ง๋ค์ด ๋ด ๊ทธ๋ฌ๊ธฐ ์ํด ํํ๊ณ ์ ์ ์ํ์ฌ ์ง์ ์ฌ์ดํธ๋ฅผ ์ดํด๋ด https://papago.naver.com/ ๋ค์ด๋ฒ ํํ๊ณ ๋ฒ์ญ์ ๋ถํํด ํํ๊ณ papago.naver.com 1๏ธโฃ ๋์ ํฌ๋กค๋ง ์งํ ์์ ๋์ ํฌ๋กค๋ง์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ์ฆ์ ์์งํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํ ์์๋ฅผ ์๊ฐํ๋ ๊ฒ์ด ์ค์ ํํ๊ณ ์ ์ ์ํด์ ๋ฒ์ญ์ ๋ฐ๊ธฐ ์ํด, ์๋ ์์ ์ ๊ฑฐ์นจ ๋ฒ์ญํ ๋ด์ฉ์ ์ผ์ชฝ ์ฐฝ์ ์ ๋ ฅ ๋ฒ์ญ ๋ฒํผ์ ํด๋ฆญ ๋ฒ์ญ ๊ฒฐ๊ณผ๋ฅผ ์์ง (ํํ๊ณ ๋ ๋ฒ์ญ ๋ฒํผ์ ๋๋ฅด์ง ์์๋ ์๋์ผ๋ก ๋ฒ์ญ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง๋ง ๋๋ฝ ๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฒ์ญ ๋ฒํผ์ ํด๋ฆญํ๋ ์์ ์ ํฌํจ) 2๏ธโฃ ํ์ํ ์์์ ํ๊ทธ ๋ฐ ์ ํ์ ํ์ธ ํํ๊ณ ์ html ..
#10. ๋์ ํฌ๋กค๋ง โ ๐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 'selenium' selenium : ๋์ ํฌ๋กค๋ง์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์น ๋๋ผ์ด๋ฒ(webdriver)๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํ๋ฅผ ์คํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ๋์ด ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๋ฐฉ์ ๊ทธ๋๋ก ํฌ๋กค๋งํ๋ ๊ธฐ๊ณ๋ฅผ ๋ง๋ค์ด ๋ ์ ์ ํฌ๋กค๋ง์ ๋นํด ์๋๋ ๋๋ฆฌ์ง๋ง, ๋ง์ฐ์ค ํด๋ฆญ, ํค๋ณด๋ ์ ๋ ฅ, ๋ค๋ก๊ฐ๊ทธ ๋ฑ์ ๋์์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ํฌ๋กค๋ง์ ํ๊ณ๋ ๊ฑฐ์ ์๋ค. โ Selenium ์ค์น ํฐ๋ฏธ๋ ํน์ ๋ช ๋ นํ๋กฌํํธ๋ฅผ ์ด์ด ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ค์น pip install selenium ๐webdriver selenium์ ์น ๋๋ผ์ด๋ฒ๋ ์น ์์ฉ ํ๋ก๊ทธ๋จ๋ค์ ํ ์คํธ๋ฅผ ๋จ์ํ ๋ฐ ๊ฐํนํํด์ฃผ๋ ํ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋์ผ๋ก ์กฐ์ํ๊ธฐ ์ํด, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฐ๊ฒฐํ๋ ๋งค๊ฐ์ฒด๋ผ๊ณ ์๊ฐํด๋ ๋ฌด๋ฐฉ ..
#9. ์ ์ ํฌ๋กค๋ง 4 8์ผ์ฐจ์์ ์ดํด๋ณด์๋ URL ์ฃผ์์ ํจํด์ ํ์ฉํ์ฌ ์ฌ๋ฌ ํ์ด์ง์ ์๋์ ์ ๋ณด๋ฅผ ์์งํ ๊ฒ์ด๋ค. โ ๊ฐ ์ํ์ ์ด๋ฆ๊ณผ ๊ฐ๊ฒฉ ์์ง โ ์ํ๋ ์ฝํ ์ธ (ํค์๋) ์ ๋ ฅ๋ฐ๊ธฐ ๐ ํ์ด์ฌ ์ฝ๋ ์์ฑ import requests import bs4 while True: keyword=input("๊ฒ์์ ์ํ๋ ํค์๋๋ฅผ ์ ๋ ฅํ์ธ์.(0์ ์ ๋ ฅํ๋ฉด ์ข ๋ฃ)") if keyword =="0": break URL = "https://browse.gmarket.co.kr/search?keyword="+keyword raw=requests.get(URL) html=bs4.BeautifulSoup(raw.text,'html.parser') box=html.find('div',{'class':'section_..
์ ์ ํฌ๋กค๋ง 3 ๐ ํฌ๋กค๋ง ๋์ ์ฌ์ดํธ ์ดํด๋ณด๊ธฐ ์ด์ ๊น์ง requests, BeautifulSoup ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ ํ์ด์ง ๋ด์ ์กด์ฌํ๋ ๋ก๋ ๋น์ฒจ ๋ฒํธ๋ฅผ ํฌ๋กค๋ง ํ์๋ค. ํ์ง๋ง, ์ ์ ํฌ๋กค๋ง์์๋ ํ์ด์ง ์ด๋๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ ๊ตฌํํด ์ค ์ ์๋ค! URL ์ฃผ์๊ฐ์ ํจํด์ ํ์ ํตํด์ โ ์ฌ์ดํธ ์ดํด๋ณด๊ธฐ โ 1๏ธโฃ ์ฌ์ดํธ ์ ์ ์ฐ์ ์๋ ๋งํฌ๋ก ์ ์ํ๋ค. https://www.gmarket.co.kr/ 2๏ธโฃ ์ํ ๊ฒ์ ๋ค์์ผ๋ก, ๊ฒ์์ฐฝ์ ๋ง์คํฌ๋ฅผ ์ ๋ ฅ 3๏ธโฃ ๊ฒ์์ด์ URL ํจํด ํ์ธ ๊ฒ์๊ฐ์ ๋ณ๊ฒฝํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ ์ํด, ๊ฒ์ํ๋ ํ๋ฉด์ URL์ ํ์ธํด ๋ณด์๋ค. ์ฐ๋ฆฌ๊ฐ ๊ฒ์ํ๋ ๋ง์คํฌ๊ฐ URL ์ฃผ์์ ํฌํจ๋์ด ์๋๊ฒ์ ํ์ธํ ์ ์๋ค. ๐ url ์ฃผ์ ์ฃผ์ ๊ฐ์์ keyword= ์ด๋ผ๋ ๋ฌธ..
๐ BeautifulSoup์ ํ์์ฑ 6์ผ์ฐจ ์ฝ๋๋ฅผ ํ์ธํด๋ณด๋ฉด requests๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ ๋ html์ ํ๊ทธ์ ์ ํ์๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ๊ฒ์ด ์๋ html ์ฝ๋๋ฅผ ๋จ์ํ ๋ฌธ์์ด ํ์ ์ผ๋ก ์ฒ๋ฆฌํด html์ ํ ์คํธ๋ก ์ถ๋ ฅํ ๊ฒ์ด๋ค. ๋ค์ ๋งํด, html์์ class๊ฐ nums์ธ divํ๊ทธ๋ฅผ ๋ฐ์์๋ผ!์ ์ฝ๋๊ฐ ์๋, ๋ฌธ์์ด์์ ์ด ํฌํจ๋ ๋ถ๋ถ์ ์ถ๋ ฅํด๋ผ! ๋ผ๊ณ ์ง ์ฝ๋์ด๋ค. BeautifulSoup ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฌธ์์ด์ ์ค์ html ์ฝ๋๋ก ๋ณํํด์ฃผ์ด requests์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ ์ ์๋ค. ๐ BeautifulSoup ์ฌ์ฉํ๊ธฐ raw.text๋ฅผ ์ค์ html ์ฝ๋๋ก ๋ณํํด์ฃผ๊ธฐ bs4.BeautifulSoup(" HTML ๋ฐ์ดํฐ ", "๋ฐ์ดํฐ ํ์ " ) html ๋ฐ์ดํฐ๋ก raw.text..