selenium 을 깔아보자!
먼저 크롬 드라이브를 깔아야 한다. 크롬 드라이브는 본인의 크롬 버전과 같은 버전으로 다운로드 해야 하는데, 크롬에 chrome://version/ 을 입력하면 본인의 크롬 버전이 나온다. 이런 것도 있었고만
https://sites.google.com/chromium.org/driver/
위 사이트에서 본인의 버전과 같은 크롬 드라이버를 설치해주면 된다.
위 화살표 된 버전을 클릭해 주었더니 여러가지 버전에 .zip 가 나타났다.
난 M1 맥북을 사용하고 있기 때문에, 네번째 mac_arm64 를 다운로드 받았다.
그 뒤 터미널에 "pip3 install selenium", "pip3 install webdriver_manager" 를 입력하여 selenium 의 환경을 조성하였다.
그리고 구글링에서 찾아낸 코드를 입력하니 실제로 홈페이지가 켜지고 홈페이지가 닫혔다.. wow
잘 깔린 것도 확인했으니 그럼 내가 원하는 마우스, 스페이스 등을 사용해보자!
click()
클릭하고 싶을 때는 클릭 함수를 사용하면 된다.
'이 부분을 클릭해줘~' 라는 명령을 완성하기 위해서는 find_element_by_xpath('원하는 태그의 xpath' ) 를 사용하곤 했는데, 버전이 업그레이드 되면서 find_element(By.Xpath, '원하는 태그의 xpath' ) 으로 변화하였다. 이 find_element() 함수는 다양하게 이용할 수 있다.
By.ID | 태그의 id값으로 추출 |
By.NAME | 태그의 name값으로 추출 |
By.XPATH | 태그의 경로로 추출 |
By.LINK_TEXT | 링크 텍스트값으로 추출 |
By.PARTIAL_LINK_TEXT | 링크 텍스트의 자식 텍스트 값을 추출 |
By.TAG_NAME | 태그 이름으로 추출 |
By.CLASS_NAME | 태그의 클래스명으로 추출 |
By.CSS_SELECTOR | css선택자로 추출 |
원하는 값을 입력한 뒤 뒤에 .click 을 붙여주면 되는 것이다. 자세한 예시는 아래 삽입하기로 하고 우선 xpath 를 구하는 방법은 아래와 같다. 원하는 태그를 우클릭하면 xpath 를 복사할 수 있다.
나는 셀레니움으로 '네이버페이지 열기' - '웹툰 버튼 클릭' - '웹툰 페이지 열기' 를 하고 싶었다. 하지만 당연히 이론처럼 한 번에 되지 않았다 하하^^ 그로인해 무수한 구글링을 통해 완성한 나의 '네이버 페이지에서 웹툰 클릭하기' 코드,,
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By #find_element 함수
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("detach", True)
#페이지가 자동으로 꺼지지 않게 해줌
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
#크롬 버전을 자동으로 맞춰줌
url = 'https://www.naver.com'
driver.get(url)
driver.find_element(By.XPATH, '//*[@id="NM_FAVORITE"]/div[1]/ul[2]/li[8]/a').click()
네 제가 짠 코드는 아래 세 줄 뿐입니다. 하하
그래도 저렇게 하면 잘 굴러간다.
send_keys()
입력하고 싶을 때 사용한다. 괄호 안에 입력하고 싶은 문구를 입력하면 된다. 그럼 바로 예제를 구현해보자.
네이버를 열고 검색창에 '하늬가람' 이라고 검색해보는 코드를 만들어보겠다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By #find_element 함수
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("detach", True)
#페이지가 자동으로 꺼지지 않게 해줌
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
#크롬 버전을 자동으로 맞춰줌
url = 'https://www.naver.com'
driver.get(url)
driver.find_element(By.XPATH, '//*[@id="query"]').send_keys("하늬가람")
driver.find_element(By.XPATH, '//*[@id="search_btn"]').click()
그럼 이제 안녕 구글링하느라 힘들었다,,
'cs > 크롤링' 카테고리의 다른 글
[크롤링] iframe (2) | 2023.03.27 |
---|---|
[크롤링] 하늬가람 페이지 크롤링해보자 (0) | 2023.03.20 |
[크롤링] 네이버 홈화면의 메뉴를 가져와보자 (0) | 2023.03.13 |
[크롤링] 할리스 매장 위치 정보 크롤링 해보기 (pandas / del[:]) (0) | 2023.03.08 |
[크롤링] 크롤링 시작하기 (페이지에 있는 링크 목록 가져오기/attrs/웹사이트를 무작위로 이동/딥 웹, 다크 웹, 히든 웹/웹스크레이핑/외부Url,내부 Url) (0) | 2023.03.06 |