파이썬에서 Selenium을 사용하여 스크래핑 (기본)
7102 단어 파이썬셀레늄scrapingselenium-webdriver
사용한 것
셀레늄
브라우저에 맞는 드라이버 준비
브라우저를 사용하려면 각 브라우저에 맞게 드라이버를 준비해야 합니다.
이번에는 Chrome을 사용하므로 공식 사이트에서 ChromeDriver를 다운로드합니다.
Selenium 설치
pip에 selenium 설치
pip install selenium
웹페이지를 열어보세요
브라우저 열기webdriver.Chrome(driver_path)
웹 페이지 열기driver.get(URL)
웹 페이지 닫기driver.close()
브라우저 종료(모든 창 닫기)driver.quit()
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.close()
driver.quit()
요소에 액세스해 봅니다.
HTML의 요소에 액세스하기 위해 id, class, name 등에서 요소를 지정하여 얻을 수 있습니다.
참고 자료
id로 가져오기driver.find_element_by_id('ID')
class 로 취득driver.find_element_by_class_name('CLASS_NAME')
이름으로 얻기driver.find_element_by_name('NAME')
링크 텍스트로 얻기driver.find_elements_by_link_text('LINK_TEXT')
중첩된 요소는 path 를 지정해 취득driver.find_elements_by_xpath(".//a")
액션
취득한 요소에 대해서, 액션을 일으키는 일로 web 페이지를 조작합니다.
참고 자료
버튼 클릭driver.find_element_by_id('Btn').click()
양식에 문자 입력driver.find_element_by_name('From').send_keys("text")
기다리다
자주 있는 것이, 화면의 로드가 완료하기 전에, 처리가 달려 버려 에러가 된다.
이를 해결하기 위해 필요한 요소가 준비될 때까지 몇 초 기다릴 수 있습니다.
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, WAIT_SECOND).until(EC.presence_of_element_located((By.CLASS_NAME, 'Btn')))
브라우저 조작
그럼 위를 근거로 가볍게 조작해 보겠습니다.
버튼을 클릭해보세요
예를 들어 모 사이트의 구매 버튼을 누르고 싶다면
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_class_name('new_addToCart').click()
driver.quit()
이러한 느낌으로 find_element_by_class_name() 로 요소를 취득해 click() 로 클릭 액션을 일으킵니다.
텍스트 입력해보기
검색창에 검색 키워드를 입력하고 검색 버튼을 누릅니다.
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_id('searchWords').send_keys("search text")
driver.find_element_by_id('searchBtn').click()
이제 검색 상자에 자동으로 "search text"가 입력되어 검색됩니다.
요약
버튼을 누르거나, 텍스트 입력을 하거나의 기본 동작을 기억하면, 대체로의 조작을 간단하게 할 수 있는 인상입니다.
역시, 브라우저 조작을 프로그램으로 실시하는 것으로, 병렬 처리를 할 수 있는 것의 혜택은 크네요.
다만, 브라우저를 많이 시작하면 PC가 엄청 무거워지기 때문에, 거기는 조심해야 합니다.
Reference
이 문제에 관하여(파이썬에서 Selenium을 사용하여 스크래핑 (기본)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kinpira/items/383b0fbee6bf229ea03d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pip에 selenium 설치
pip install selenium
웹페이지를 열어보세요
브라우저 열기webdriver.Chrome(driver_path)
웹 페이지 열기driver.get(URL)
웹 페이지 닫기driver.close()
브라우저 종료(모든 창 닫기)driver.quit()
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.close()
driver.quit()
요소에 액세스해 봅니다.
HTML의 요소에 액세스하기 위해 id, class, name 등에서 요소를 지정하여 얻을 수 있습니다.
참고 자료
id로 가져오기driver.find_element_by_id('ID')
class 로 취득driver.find_element_by_class_name('CLASS_NAME')
이름으로 얻기driver.find_element_by_name('NAME')
링크 텍스트로 얻기driver.find_elements_by_link_text('LINK_TEXT')
중첩된 요소는 path 를 지정해 취득driver.find_elements_by_xpath(".//a")
액션
취득한 요소에 대해서, 액션을 일으키는 일로 web 페이지를 조작합니다.
참고 자료
버튼 클릭driver.find_element_by_id('Btn').click()
양식에 문자 입력driver.find_element_by_name('From').send_keys("text")
기다리다
자주 있는 것이, 화면의 로드가 완료하기 전에, 처리가 달려 버려 에러가 된다.
이를 해결하기 위해 필요한 요소가 준비될 때까지 몇 초 기다릴 수 있습니다.
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, WAIT_SECOND).until(EC.presence_of_element_located((By.CLASS_NAME, 'Btn')))
브라우저 조작
그럼 위를 근거로 가볍게 조작해 보겠습니다.
버튼을 클릭해보세요
예를 들어 모 사이트의 구매 버튼을 누르고 싶다면
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_class_name('new_addToCart').click()
driver.quit()
이러한 느낌으로 find_element_by_class_name() 로 요소를 취득해 click() 로 클릭 액션을 일으킵니다.
텍스트 입력해보기
검색창에 검색 키워드를 입력하고 검색 버튼을 누릅니다.
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_id('searchWords').send_keys("search text")
driver.find_element_by_id('searchBtn').click()
이제 검색 상자에 자동으로 "search text"가 입력되어 검색됩니다.
요약
버튼을 누르거나, 텍스트 입력을 하거나의 기본 동작을 기억하면, 대체로의 조작을 간단하게 할 수 있는 인상입니다.
역시, 브라우저 조작을 프로그램으로 실시하는 것으로, 병렬 처리를 할 수 있는 것의 혜택은 크네요.
다만, 브라우저를 많이 시작하면 PC가 엄청 무거워지기 때문에, 거기는 조심해야 합니다.
Reference
이 문제에 관하여(파이썬에서 Selenium을 사용하여 스크래핑 (기본)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kinpira/items/383b0fbee6bf229ea03d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.close()
driver.quit()
HTML의 요소에 액세스하기 위해 id, class, name 등에서 요소를 지정하여 얻을 수 있습니다.
참고 자료
id로 가져오기
driver.find_element_by_id('ID')
class 로 취득
driver.find_element_by_class_name('CLASS_NAME')
이름으로 얻기
driver.find_element_by_name('NAME')
링크 텍스트로 얻기
driver.find_elements_by_link_text('LINK_TEXT')
중첩된 요소는 path 를 지정해 취득
driver.find_elements_by_xpath(".//a")
액션
취득한 요소에 대해서, 액션을 일으키는 일로 web 페이지를 조작합니다.
참고 자료
버튼 클릭driver.find_element_by_id('Btn').click()
양식에 문자 입력driver.find_element_by_name('From').send_keys("text")
기다리다
자주 있는 것이, 화면의 로드가 완료하기 전에, 처리가 달려 버려 에러가 된다.
이를 해결하기 위해 필요한 요소가 준비될 때까지 몇 초 기다릴 수 있습니다.
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, WAIT_SECOND).until(EC.presence_of_element_located((By.CLASS_NAME, 'Btn')))
브라우저 조작
그럼 위를 근거로 가볍게 조작해 보겠습니다.
버튼을 클릭해보세요
예를 들어 모 사이트의 구매 버튼을 누르고 싶다면
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_class_name('new_addToCart').click()
driver.quit()
이러한 느낌으로 find_element_by_class_name() 로 요소를 취득해 click() 로 클릭 액션을 일으킵니다.
텍스트 입력해보기
검색창에 검색 키워드를 입력하고 검색 버튼을 누릅니다.
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_id('searchWords').send_keys("search text")
driver.find_element_by_id('searchBtn').click()
이제 검색 상자에 자동으로 "search text"가 입력되어 검색됩니다.
요약
버튼을 누르거나, 텍스트 입력을 하거나의 기본 동작을 기억하면, 대체로의 조작을 간단하게 할 수 있는 인상입니다.
역시, 브라우저 조작을 프로그램으로 실시하는 것으로, 병렬 처리를 할 수 있는 것의 혜택은 크네요.
다만, 브라우저를 많이 시작하면 PC가 엄청 무거워지기 때문에, 거기는 조심해야 합니다.
Reference
이 문제에 관하여(파이썬에서 Selenium을 사용하여 스크래핑 (기본)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kinpira/items/383b0fbee6bf229ea03d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
자주 있는 것이, 화면의 로드가 완료하기 전에, 처리가 달려 버려 에러가 된다.
이를 해결하기 위해 필요한 요소가 준비될 때까지 몇 초 기다릴 수 있습니다.
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, WAIT_SECOND).until(EC.presence_of_element_located((By.CLASS_NAME, 'Btn')))
브라우저 조작
그럼 위를 근거로 가볍게 조작해 보겠습니다.
버튼을 클릭해보세요
예를 들어 모 사이트의 구매 버튼을 누르고 싶다면
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_class_name('new_addToCart').click()
driver.quit()
이러한 느낌으로 find_element_by_class_name() 로 요소를 취득해 click() 로 클릭 액션을 일으킵니다.
텍스트 입력해보기
검색창에 검색 키워드를 입력하고 검색 버튼을 누릅니다.
<화면>
<소스>
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_id('searchWords').send_keys("search text")
driver.find_element_by_id('searchBtn').click()
이제 검색 상자에 자동으로 "search text"가 입력되어 검색됩니다.
요약
버튼을 누르거나, 텍스트 입력을 하거나의 기본 동작을 기억하면, 대체로의 조작을 간단하게 할 수 있는 인상입니다.
역시, 브라우저 조작을 프로그램으로 실시하는 것으로, 병렬 처리를 할 수 있는 것의 혜택은 크네요.
다만, 브라우저를 많이 시작하면 PC가 엄청 무거워지기 때문에, 거기는 조심해야 합니다.
Reference
이 문제에 관하여(파이썬에서 Selenium을 사용하여 스크래핑 (기본)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kinpira/items/383b0fbee6bf229ea03d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_class_name('new_addToCart').click()
driver.quit()
from selenium import webdriver
driver = webdriver.Chrome(driver_path)
driver.get(URL)
driver.find_element_by_id('searchWords').send_keys("search text")
driver.find_element_by_id('searchBtn').click()
버튼을 누르거나, 텍스트 입력을 하거나의 기본 동작을 기억하면, 대체로의 조작을 간단하게 할 수 있는 인상입니다.
역시, 브라우저 조작을 프로그램으로 실시하는 것으로, 병렬 처리를 할 수 있는 것의 혜택은 크네요.
다만, 브라우저를 많이 시작하면 PC가 엄청 무거워지기 때문에, 거기는 조심해야 합니다.
Reference
이 문제에 관하여(파이썬에서 Selenium을 사용하여 스크래핑 (기본)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kinpira/items/383b0fbee6bf229ea03d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)