- Today
- Total
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฐ์ดํฐ๋ถ์ ๋ ํ
- ์ฌ์กฐ์ฌ2๊ธ ๊ธฐ์ถ๋ฌธ์
- ๋ฐ์ดํฐ๋ถ์
- EDA
- ์กฐ์ธ์ฐ์ฐ์
- ๋ฉ์ฌ ๋ฐ์ดํฐ๋ถ์
- ๋งฅ๋ถ ์ํฌ๋ฒค์น์ค๋ฅ
- ๋ฉ์์ด์ฌ์์ฒ๋ผ๋ฐ์ดํฐ๋ถ์
- ๋ฉ์ฌ๋ถํธ์บ ํ
- ํ์ด์ฌ๊ธฐ์ด
- ํ์ด์ฌ์์
- SQL
- ๋ฉ์์ด์ฌ์์ฒ๋ผ ํ๊ธฐ
- ๋งฅ๋ถ ์ํฌ๋ฒค์น ๋๊ตฌ ์๋ณด์
- ์ฌ์กฐ์ฌ๊ธฐ์ถ
- ์ฌ์กฐ์ฌ2๊ธ ์ค๊ธฐ๊ธฐ์ถ
- ๋ฉ์์ด์ฌ์์ฒ๋ผ๋ถํธ์บ ํ
- ๋ฉ์์ด์ฌ์์ฒ๋ผ
- ๋ฉ์์ด์ฌ์์ฒ๋ผ ๋ฐ์ดํฐ๋ถ์
- ๋ฉ์ฌํ๊ธฐ
- ํ๋ก์ ํธ ํ๊ณ ๋ก
- ๋ฐ์ดํฐ๋ถ์๋ถํธ์บ ํ
- ์นํฌ๋กค๋ง
- ๋ฉ์์ด์ฌ์์ฒ๋ผ ๋ถํธ์บ ํ
- ์ฌ์กฐ์ฌ2๊ธ ์์ ํ
- ๋ฉ์์ด์ฌ์์ฒ๋ผํ๊ธฐ
- ์ํฌ๋ฒค์น ์ค๋ฅ
- ๊นํ๋ธ ์ด๊ธฐ์ค์
- ํ์ด์ฌ
- ์ฃผํผํฐ๋ ธํธ๋ถ๋จ์ถํค
๊ฐ์์ Data Lab ๐
[๋ฉ์์ด์ฌ์์ฒ๋ผ ๋ฐ์ดํฐ๋ถ์ ๋ถํธ์บ ํ 5๊ธฐ] ์น ํฌ๋กค๋ง Selenium ์ฐ์ตํด๋ณด๊ธฐ ๋ณธ๋ฌธ
[๋ฉ์์ด์ฌ์์ฒ๋ผ ๋ฐ์ดํฐ๋ถ์ ๋ถํธ์บ ํ 5๊ธฐ] ์น ํฌ๋กค๋ง Selenium ์ฐ์ตํด๋ณด๊ธฐ
๊ฐ์์๋ 2025. 5. 20. 17:470. ํ์ต๋ชฉํ
- ๋ด๊ฐ ๋ณด๋ ค๊ณ ๋ง๋ ์
๋ ๋์ ๊ฐ์ด๋๋ถ
- ์
๋ ๋์์ ์ด์ฉํ ํฌ๋กค๋ง ์ฐ์ต ๋ฐ ๋ณต์ตํ๊ธฐ
1. ์ ๋ ๋์ ํฌ๋กค๋ง ๊ฐ๋
๋ชฉ์ | ์น ํ์ด์ง๋ฅผ ์๋์ผ๋ก ์ด๊ณ , ํ์ํ๊ณ , ์ ๋ณด ์ถ์ถ (ex. ๋ก๊ทธ์ธ, ๋ฒํผ ํด๋ฆญ, ๋ฐ์ดํฐ ์์ง ๋ฑ) |
๊ธฐ๋ณธ ์๋ฆฌ | ์ค์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋์ด ํ, HTML ์์๋ฅผ ์ฐพ๊ณ ์กฐ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด โก๏ธ ์ ์ ํฌ๋กค๋ง |
์ง์ ๋ธ๋ผ์ฐ์ | Chrome, Firefox, Safari ๋ฑ ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ |
ํต์ฌ ๊ตฌ์ฑ ์์ |
|
2. ๋ค์ด๋ฒ ํ์๊ฐ์ ์ ์ ๋ ๋์์ผ๋ก ํด๋ณด์
1) ๋ผ์ด๋ธ๋ฌ๋ฆฌ Import
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
2) ์น ๋๋ผ์ด๋ฒ ์คํ
webdriver ํจํค์ง๋ฅผ ์ด์ฉํ์ฌ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
๊ทธ๋ฆฌ๊ณ driver ๋ณ์์ ์ ์ฅํ๋ค.
driver = webdriver.Chrome()
์คํํ๋ฉด ๋น ํฌ๋กฌ์ฐฝ์ด ์ด๋ฆฐ๋ค.
์ด์ ์ฌ๊ธฐ์ ๋ค์ด๋ฒ ์ฌ์ดํธ๋ฅผ ๋ถ๋ฌ์ฌ๊ฒ์ด๋ค.
3) ๋ค์ด๋ฒ ์ฌ์ดํธ ์์ฒญํ๊ธฐ
(์ค๋๋ง์ ๋ณด๋) get ํจ์๋ก ๋ถ๋ฌ์จ๋ค.
driver.get('https://www.naver.com')
๋งํ๋๋ก ํฌ๋กฌ์ฐฝ์ด ๋ค์ด๋ฒ๋ก ์ ์์ด ๋๋ค.
4) ํ์๊ฐ์ ์ฐฝ ์ด๊ธฐ
๋ค์ด๋ฒ ํ๋ฉด์์ F12 ํค๋ฅผ ๋๋ฌ์ ๊ฐ๋ฐ์ ๋ชจ๋ ์ฐฝ์ ์ด๊ณ , ํ์๊ฐ์ ๋ฒํผ์ ์ฐพ์์ copy select ํ๋ค.
์นดํผํ ์ฝ๋๋ฅผ ์๋์ value๊ฐ์ผ๋ก ๋ฃ์ด์ค๋ค.
join_tag = driver.find_element(by=By.CSS_SELECTOR, value = '#account > div > div > a:nth-child(3)')
join_tag.click()
find_element()๋ฅผ ์ด์ฉํด์ HTML ์์ ํ์๊ฐ์
์์๋ฅผ ์ฐพ๋ ๊ฒ์ join_tag์ ๋ฃ๋๋ค.
๊ทธ๋ฆฌ๊ณ click()์ ์ด์ฉํด์ ๊ทธ ์์๋ฅผ ํด๋ฆญํ๋ ํ๋์ ํ๋๋ก ํ๋ค.
5. ์์์ ๋ง๊ฒ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ณ ํด๋ฆญ ๋ฐ ์ ๋ ฅํ๊ธฐ ๐
์ด์ ๋ถํฐ find_element()์ click()์ ์ฐ์์ด๋ค..!
์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ผ๋ก ์ด๋ํ๋ค.
์ด ํ๋ฉด์์ ํด์ผํ ์ผ์
1. ์ ์ฒด ๋์ํ๊ธฐ ๋ฒํผ ํด๋ฆญํ๊ธฐ
2. ๋ค์ ๋ฒํผ ํด๋ฆญํ๊ธฐ
์ด๋ค. find_element()์ click()์ ์ด์ฉํด์ ์คํํด๋ณด์
# ์ฝ๊ด ์ ์ฒด ๋์๋ฅผ ๋๋ฌ์ค๋ค.
check_tag = driver.find_element(by=By.CSS_SELECTOR, value='#join_form > div.form_content > div.form_section > div.check_terms > div > label')
check_tag.click()
# ์ฝ๊ด์ ํ์ธ ๋ฒํผ์ ๋๋ฅธ๋ค.
agree_btn = driver.find_element(by=By.CSS_SELECTOR, value='#btnAgree')
agree_btn.click()
๋ค์ ํ๋ฉด์์ ํด์ผํ ์ผ์
1. ์์ด๋ ์
๋ ฅ
2. ๋น๋ฐ๋ฒํธ ์
๋ ฅ
3. ์ด๋ฆ ์
๋ ฅ
4. ์๋
์์ผ 8์๋ฆฌ ์
๋ ฅ
5. ํต์ ์ฌ ์ ํ
6. ์ฑ๋ณ ์ ํ
7. ๋ด๊ตญ์ธ/์ธ๊ตญ์ธ ์ ํ
8. ํด๋์ ํ๋ฒํธ ์
๋ ฅ
9. ์ธ์ฆ ์ฝ๊ด ๋์ ํด๋ฆญ
* ์ธ์ฆ ์์ฒญ์ ์ํ ๊ฒ์ !!! (์๋ชปํ๋ฉด ๋ฐด ๋นํ ์๋ ์์ ^^)
- ์ ๋ ฅ์ find_element()์ send_keys()๋ก ํ ๊ฒ์ด๊ณ ,
- ๋ฒํผ ํด๋ฆญ์ find_element()์ click()์ผ๋ก ํ ๊ฒ์ด๋ค.
# ์์ด๋
input_id = driver.find_element(by=By.CSS_SELECTOR, value='#id')
input_id.send_keys('ididid1234566')
# ๋น๋ฐ๋ฒํธ
input_pass1 = driver.find_element(by=By.CSS_SELECTOR, value='#pswd1')
input_pass1.send_keys('pwpwpw987655@')
# ์ด๋ฆ
input_name = driver.find_element(by=By.CSS_SELECTOR, value='#name')
input_name.send_keys('๊ฐ์์๋')
# ์๋
์์ผ 8์๋ฆฌ
input_birthdayInput = driver.find_element(by=By.CSS_SELECTOR, value='#birthdayInput')
input_birthdayInput.send_keys('20010520')
# ํต์ ์ฌ ์ ํ์ง ์ฌ๋ ๋ฒํผ
btn_telecom = driver.find_element(by=By.CSS_SELECTOR, value='#btn_telecom')
btn_telecom.click()
# ๋์ ํต์ ์ฌ ์ ํ
btnTelecomSub = driver.find_element(by=By.CSS_SELECTOR, value = '#btnTelecom5')
btnTelecomSub.click()
# ์ฑ๋ณ
listIdentityGender = driver.find_element(by=By.CSS_SELECTOR, value='#listIdentityGender > li:nth-child(1) > label')
listIdentityGender.click()
# ๋ด์ธ๊ตญ์ธ
listForeigner = driver.find_element(by=By.CSS_SELECTOR, value='#listForeigner > li:nth-child(1) > label')
listForeigner.click()
# ํด๋ํฐ๋ฒํธ
phoneNo = driver.find_element(by=By.CSS_SELECTOR, value='#phoneNo')
phoneNo.send_keys('010-1232-1232')
# ์ธ์ฆ ์ฝ๊ด ์ ์ฒด๋์ ๋ฒํผ ๋๋ฅด๊ธฐ
agree_all_btn = driver.find_element(by=By.CSS_SELECTOR, value='#itemAgree > div > div > label')
agree_all_btn.click()
๋ค์๊ณผ ๊ฐ์ด ์ ์์ ์ผ๋ก ์ ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋์ ํฌ๋กค๋ง ์
๋ ๋์ ์ฐ์ตํด๋ณด๊ธฐ ์๋ฃ !!
๐ญ ๋๋ ์ ๋ฐ ํฅํ ๊ณํ
๋ค์ด๋ฒ ํ์๊ฐ์
์ ์์ฃผ ์ฌ์ด ํฌ๋กค๋ง์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ค์ด ์ ์ด ํ๋๋ ์์๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ํ ํจ์๋ ๋งค์ฐ ์ง๊ด์ ์ธ ์ด๋ฆ์ ๊ฐ์ ธ์, ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํ๋ค ๋ณด๋
์ฝ๊ฒ ๋๊ปด์ง๊ฑฐ ๊ฐ๋ค.
๊ทผ๋ฐ,,, ์ผ๊ตฌ๋ฐ์ดํฐ ํฌ๋กค๋ง ํ ๋๋ ์ ๋ง ํฌ๊ธฐ ๋ง๋ ค์ ๋ค ใ
ใ
๊ทธ์น๋ง ๋๊น์ง ํค๋ด์๋ ๋ฉํ ๋์ด ๋๋จํ์๋ค๊ณ ๋๊ปด์ก๊ณ ,
์ด์ฐจํผ ๋์ค์ ๋๋ ํด์ผํ ์ผ์ด๋๊น ์ด์ ํ๋๊ฑฐ ๋ณต์กํ ์ฌ์ดํธ๋ก ์ฐ์ตํด๋ณด๋๊ฒ
๋ ๋์์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์๋ค..
์
๋ ๋์ ๋ณต์ต์ ์ธ์ ๋ค์ ํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง?
์๊ฐ์ด ์๊ธธ ๋ ๊ผญ ๋ค์ ํ ๋ฒ ํด๋ด์ผ๊ฒ ๋ค.
์ถ์ฒ : ๋ฉ์์ด์ฌ์์ฒ๋ผ