ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Selenium ๊ฐ„๋‹จ ์‚ฌ์šฉ๋ฒ•
    WEB/Crawling 2023. 10. 11. 18:02

    Selenium 

    ๐Ÿ’ก ์‚ฌ์šฉ์ž ๋Œ€์‹  ์ปดํ“จํ„ฐ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    ๋ฐ˜๋“œ์‹œ ํ•œ๋ฒˆ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

    !pip3 install selenium
    

    ์ตœ์‹ ๋ฒ„์ ผ์œผ๋กœ ์—…๋ฐ์ดํŠธ

    # ๊ตฌ๋ฒ„์ „ ์ฝ”๋“œ์—์„œ๋Š” 'ํฌ๋กฌ๋“œ๋ผ์ด๋ฒ„' ์„ค์น˜ํ•ด์ค˜์•ผํ•œ๋‹ค.
    # ์‹ ๋ฒ„์ „ ์ฝ”๋“œ์—์„œ๋Š” ์„ค์น˜ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ˜น ์„ค์น˜ํ•˜๋ฉด ์ถฉ๋Œ๋‚˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌ.
    !pip3 install -U selenium
    

     

     

    ChromeDriver - WebDriver for Chrome - Downloads

    Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading. For older versions of Chrome, please se

    chromedriver.chromium.org

     

    1. ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    # ๋ธŒ๋ผ์šฐ์ €์˜ ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    from selenium import webdriver as wb
    # ์„ ํƒ์ž๋ฅผ ๊ตฌ๋ถ„์ง€์–ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    from selenium.webdriver.common.by import By
    # ์ปดํ“จํ„ฐ์šฉ ํ‚ค๋ณด๋“œ
    from selenium.webdriver.common.keys import Keys
    

    2. ํฌ๋กฌ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰

    ์ƒ์„ฑ

    driver = wb.Chrome()
    

    ์ด๋™

    driver.get("<http://www.naver.com>")
    

    ์š”์†Œ ์ฐพ๊ธฐ

    driver.find_element()
    driver.find_elements()

    ๋ญ˜ ๊ฒ€์ƒ‰ํ• ๊ฑด์ง€ ์˜๋ฏธ (driver find by id query)

    search = driver.find_element(By.ID, "query") # === getElementsByID
    

    ํ‚ค๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•

    search.send_keys('์•„์‹œ์•ˆ๊ฒŒ์ž„')
    

    ์š”์†Œ๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฐพ๊ธฐ๋ฅผ ๋จผ์ € ์ง„ํ–‰

    find_element(s)

    By.๊ตฌ๋ถ„์ž → ์„ ํƒ์ž๋ฅผ ๊ตฌ๋ถ„

    ํŠน์ • ๊ฐ’์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” send_keys(’๋ณด๋‚ผ ๊ฐ’’)

    ๊ธฐ๋Šฅ์„ ๋ณด๋‚ด์•ผํ•œ๋‹ค.

     

    ๊ธฐ๋Šฅ์„ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•

    search.send_keys(Keys.ENTER)
    
    body = driver.find_element(By.TAG_NAME, "body")
    # ํŽ˜์ด์ง€ ๋’ค๋กœ๊ฐ€๊ธฐ
    driver.back()
    

    ๐Ÿ‘พ ๋‹ค์‹œ ์ด๊ฐ•์ธ์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค.

    search.send_keys('์ด๊ฐ•์ธ')
    

    ๋ฐ˜๋“œ์‹œ ํ™”๋ฉด์ „ํ™˜์ด ์ผ์–ด๋‚œ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ๋‹ค. ๋ฐ˜๋“œ์‹œ ์š”์†Œ๋ฅผ ์žฌ๊ฒ€์ƒ‰ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

    search = driver.find_element(By.ID, "query")
    search.send_keys('์ด๊ฐ•์ธ')
    

    ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”  By.CSS_SELECTOR

    button = driver.find_element(By.CSS_SELECTOR, "#sform > fieldset > button")
    

     

leechi's blog