์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋๋ฆผ์ฝ๋ฉ
- ๋ ธ๋ง๋์ฝ๋
- ์ฝ๋ฉ
- ์ฝ๋ฉ์ ํ
- heapq
- HTML
- ๊ฐ๋ฐ
- ํ์ด์ฌ
- ํ ์ดํ๋ก์ ํธ
- ๊ตญ๋น์ง์
- JS
- ์๊ณ ๋ฆฌ์ฆ
- fe
- ๋ฐฑ์ค
- javascript
- ํ๋ก ํธ์๋
- KDT
- error
- ํฌ๋กค๋ง
- CSS
- node.js
- ํ๋ก์ ํธ
- react
- Til
- ๋ชจ๊ฐ์ฝ
- mongodb
- Python
- ์ฝ๋ฉํ ์คํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๊ทธ๋ฆฌ๋
- Today
- Total
๐ฑ → ๐ณ
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 15์ผ์ฐจ ๋ณธ๋ฌธ
#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 ํ๊ทธ์ ๋ฒํธ๊ฐ ํ๋์ฉ ์ฆ๊ฐํ๊ณ ์๋ ๊ฒ์ ํ์ธ
-> ์ด์ฒ๋ผ ํจํด์ ํ์ ํ๊ธฐ๊ฐ ๊ต์ฅํ ์ฌ์
ํ ํ์ด์ง์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ์ฝ๋๋ฅผ ๊ตฌํํ ๋ณด์๋ค.
โ ํ์ด์ฌ ์ฝ๋ ๊ตฌํ
์ค๋์ ๊ฒ์๊ธ์ XPath ํจํด์ ์ฌ์ฉํด,
์ ๊ณผ์ ์ฌ์ด์ ๋ค๋ก๊ฐ๊ธฐ๋ฅผ ์ฝ์ ํด ์ค๊ฒ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ก๊ทธ์ธ - ๊ฒ์ํ ์ด๋ - ๊ฒ์๊ธ ์ง์ - ๋ด์ฉ์ถ์ถ - ๋ค๋ก๊ฐ๊ธฐ - ๊ฒ์๊ธ ์ง์ - ...
์์๋ก ๋ฐ๋ณต๋๋ค.
2๏ธโฃ ๋ค๋ก ๊ฐ๊ธฐ
driver.back()
3๏ธโฃ XPath ํจํด์ ์ฌ์ฉํด ๋ฐ๋ณต๋ฌธ ๊ตฌํ
XPath ํจํด์ ์ฌ์ฉํด
15๋ฒ์งธ ๊ฒ์๊ธ๊น์ง ๋ชจ๋ ๋ด์ฉ์ ๋ฐ์์ ๋ณด์
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import time
chrome_driver = ChromeDriverManager().install()
service = Service(chrome_driver)
driver = webdriver.Chrome(service=service)
login_url = "https://nid.naver.com/nidlogin.login"
driver.get(login_url)
time.sleep(2)
my_id = "ID"
my_pw = "PW"
driver.execute_script("document.getElementsByName('id')[0].value = '" + my_id + "'")
driver.execute_script("document.getElementsByName('pw')[0].value = '" + my_pw + "'")
time.sleep(1)
button = driver.find_element(By.ID, "log.login")
button.click()
time.sleep(1)
comu_url = "https://cafe.naver.com/codeuniv"
driver.get(comu_url)
time.sleep(1)
menu = driver.find_element(By.ID, "menuLink90")
menu.click()
time.sleep(1)
for i in range(1, 16):
xpath = (
"/html/body/div[1]/div/div[4]/table/tbody/tr[" + str(i) + "]/td[1]/div[3]/div/a"
)
driver.switch_to.frame("cafe_main")
time.sleep(1)
writing = driver.find_element(By.XPATH, xpath)
writing.click()
time.sleep(1)
content = driver.find_element(By.CSS_SELECTOR, "div.se-component-content").text
print(content)
driver.back()
time.sleep(1)
driver.close()
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์
๋ค์ด๋ฒ ์นดํ๋ ํ๋ ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด
๊ธฐ๋ณธ ํฌ๋กค๋ง ๋ฐฉ์์ผ๋ก๋ ๊ฒ์์ด ๋์ง ์๋๋ค
๋ฐ๋ผ์ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์ swith_to.frame ํจ์๋ฅผ ๋ฃ์ด, ๊ฒ์ํ์ผ๋ก ๋์๊ฐ ๋๋ง๋ค
์ ๋ ๋์์ ํ์ ๋ฒ์๋ฅผ cafe_main์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํ๋ค.
โญ์ ๋ฆฌํ๊ธฐโญ
โ ๋ค๋ก๊ฐ๊ธฐ
โ XPath์ ํจํด ํ์
'Server > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ์กฐ๊ฑด๋ฌธ ๊ธฐ์ด (0) | 2022.05.23 |
---|---|
[Python] ๊ธฐ์ด ์๋ฃํ (0) | 2022.05.23 |
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 14์ผ์ฐจ (0) | 2022.04.08 |
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 13์ผ์ฐจ (0) | 2022.04.08 |
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 12์ผ์ฐจ (0) | 2022.04.08 |