Notice
Recent Posts
Recent Comments
Link
Today
Total
ยซ   2025/06   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
Tags more
Archives
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๊ฐ์ž์˜ Data Lab ๐Ÿ“Š

[๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ถ€ํŠธ์บ ํ”„ 5๊ธฐ] ์›น ํฌ๋กค๋ง Selenium ์—ฐ์Šตํ•ด๋ณด๊ธฐ ๋ณธ๋ฌธ

๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ เป’(โŠ™แด—โŠ™)เฅญโœŽ

[๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ถ€ํŠธ์บ ํ”„ 5๊ธฐ] ์›น ํฌ๋กค๋ง Selenium ์—ฐ์Šตํ•ด๋ณด๊ธฐ

๊ฐ์ž์Šˆ๋‹ˆ 2025. 5. 20. 17:47

0. ํ•™์Šต๋ชฉํ‘œ

- ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“  ์…€๋ ˆ๋‹ˆ์›€ ๊ฐ€์ด๋“œ๋ถ
- ์…€๋ ˆ๋‹ˆ์›€์„ ์ด์šฉํ•œ ํฌ๋กค๋ง ์—ฐ์Šต ๋ฐ ๋ณต์Šตํ•˜๊ธฐ 


1. ์…€๋ ˆ๋‹ˆ์›€ ํฌ๋กค๋ง ๊ฐœ๋… 

๋ชฉ์  ์›น ํŽ˜์ด์ง€๋ฅผ ์ž๋™์œผ๋กœ ์—ด๊ณ , ํƒ์ƒ‰ํ•˜๊ณ , ์ •๋ณด ์ถ”์ถœ (ex. ๋กœ๊ทธ์ธ, ๋ฒ„ํŠผ ํด๋ฆญ, ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋“ฑ)
๊ธฐ๋ณธ ์›๋ฆฌ ์‹ค์ œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋„์šด ํ›„, HTML ์š”์†Œ๋ฅผ ์ฐพ๊ณ  ์กฐ์ž‘ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ด โžก๏ธ ์ •์ ํฌ๋กค๋ง
์ง€์› ๋ธŒ๋ผ์šฐ์ € Chrome, Firefox, Safari ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €
ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ
  • WebDriver: ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฐ์ฒด (ex. ChromeDriver)
  • find_element(): ํŠน์ • HTML ์š”์†Œ๋ฅผ ์ฐพ๋Š” ํ•จ์ˆ˜
  • click(), send_keys(): ๋ฒ„ํŠผ ํด๋ฆญ, ํ…์ŠคํŠธ ์ž…๋ ฅ ๋“ฑ์˜ ์ธํ„ฐ๋ž™์…˜ ์ˆ˜ํ–‰ 

 


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()

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋™์ ํฌ๋กค๋ง ์…€๋ ˆ๋‹ˆ์›€ ์—ฐ์Šตํ•ด๋ณด๊ธฐ ์™„๋ฃŒ !!

 


๐Ÿ’ญ ๋А๋‚€ ์  ๋ฐ ํ–ฅํ›„ ๊ณ„ํš

๋„ค์ด๋ฒ„ ํšŒ์›๊ฐ€์ž…์€ ์•„์ฃผ ์‰ฌ์šด ํฌ๋กค๋ง์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ค์šด ์ ์ด ํ•˜๋‚˜๋„ ์—†์—ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ํ•จ์ˆ˜๋„ ๋งค์šฐ ์ง๊ด€์ ์ธ ์ด๋ฆ„์„ ๊ฐ€์ ธ์„œ, ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋‹ˆ
์‰ฝ๊ฒŒ ๋А๊ปด์ง„๊ฑฐ ๊ฐ™๋‹ค.

๊ทผ๋ฐ,,, ์•ผ๊ตฌ๋ฐ์ดํ„ฐ ํฌ๋กค๋ง ํ•  ๋•Œ๋Š” ์ •๋ง ํฌ๊ธฐ ๋งˆ๋ ค์› ๋‹ค ใ…Žใ…Ž
๊ทธ์น˜๋งŒ ๋๊นŒ์ง€ ํ—ค๋‚ด์‹œ๋Š” ๋ฉ˜ํ† ๋‹˜์ด ๋Œ€๋‹จํ•˜์‹œ๋‹ค๊ณ  ๋А๊ปด์กŒ๊ณ ,
์–ด์ฐจํ”ผ ๋‚˜์ค‘์— ๋‚˜๋„ ํ•ด์•ผํ•  ์ผ์ด๋‹ˆ๊นŒ ์ด์™• ํ•˜๋Š”๊ฑฐ ๋ณต์žกํ•œ ์‚ฌ์ดํŠธ๋กœ ์—ฐ์Šตํ•ด๋ณด๋Š”๊ฒŒ
๋” ๋‚˜์„์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ๋‹ค..

์…€๋ ˆ๋‹ˆ์›€ ๋ณต์Šต์€ ์–ธ์ œ ๋‹ค์‹œ ํ• ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ?
์‹œ๊ฐ„์ด ์ƒ๊ธธ ๋•Œ ๊ผญ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ•ด๋ด์•ผ๊ฒ ๋‹ค.

 

์ถœ์ฒ˜ : ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ

'๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ เป’(โŠ™แด—โŠ™)เฅญโœŽ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ถ€ํŠธ์บ ํ”„ 5๊ธฐ] ๋ฏธ๋“œํ”„๋กœ์ ํŠธ ๊ณผ์ •๊ณผ ํšŒ๊ณ  ๐Ÿ“  (6) 2025.06.09
[๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ถ€ํŠธ์บ ํ”„ 5๊ธฐ] EDA ํ”„๋กœ์•ผ๊ตฌ ๋ฐ์ดํ„ฐโšพ๏ธ ๋ถ„์„ ํ•ด๋ณด๊ธฐ  (2) 2025.05.21
[๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ถ€ํŠธ์บ ํ”„ 5๊ธฐ] EDA ์Œ์ฃผ๐Ÿป ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ  (0) 2025.05.17
[๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ถ€ํŠธ์บ ํ”„ 5๊ธฐ] ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์ „์ฒ˜๋ฆฌ ๊ณผ์ • ์•Œ์•„๋ณด๊ธฐ  (0) 2025.05.09
[๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ถ„์„ ๋ถ€ํŠธ์บ ํ”„ 5๊ธฐ] SQL ์กฐ์ธ, ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ  (1) 2025.05.02