파이썬에서 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.)