Selenium

1yangsh·2021년 4월 26일
0

Selenium

크롤링 대상인 웹 페이지에 동적인 동작을 곁들여서 크롤링을 할 수 있게 도와주는 라이브러리
Selenium에 Web driver을 연동해서 크롤링 시, Selenium은 브라우저인 Chrome web driver을 통해 웹 서버의 응답을 받는다

Selenium 설치

  • pip install selenium
  • conda install selenium

Chrome web driver 설치

https://sites.google.com/a/chromium.org/chromedriver

  • zip 파일을 다운로드 후, 파일 압축 해제

Selenium 을 이용한 크롤링 예제

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

path = "C:\\Users\\Downloads\\webdriver\\chromedriver.exe"  # chromedriver 설치 경로
driver = webdriver.Chrome(path)


# selenium을 이용한 구글 검색 테스트

driver.get("https://www.google.com")
search_box = driver.find_element_by_name("q")  # 검색창의 name이 q
search_box.send_keys("아마존 웹 서비스")       # q에 cloud computing의 키를 넘김
search_box.submit()                            # 엔터키와 동일한 작업



# facebook login

driver.get("https://www.facebook.com")
print(driver.title)
elem_email = driver.find_element_by_id("email")
elem_email.send_keys("[페이스북 아이디]")
elem_pass = driver.find_element_by_id("pass")
elem_pass.send_keys("[페이스북 패스워드]")
elem_pass.send_keys(Keys.RETURN)



# github login

driver.get("https://www.github.com/login")
print(driver.title)
elem_email = driver.find_element_by_id("login_field")
elem_email.send_keys("[github id]")
elem_pass = driver.find_element_by_id("password")
elem_pass.send_keys("[github password]")
elem_pass.send_keys(Keys.RETURN)



# facebook 자기 프로필, 친구목록 확인
driver.get("https://www.facebook.com")
print(driver.title)

elem_email = driver.find_element_by_id("email")
elem_email.send_keys("[id]")
elem_pass = driver.find_element_by_id("pass")
elem_pass.send_keys("[password]")
elem_pass.send_keys(Keys.RETURN)

# 프로필
profile_a = driver.find_element_by_xpath(
    '//*[@id="mount_0_0"]/div/div[1]/div[1]/div[3]/div/div/div[1]/div[1]/div/div[1]/div/div/div[1]/div/div/div[1]/ul/li/div/a')
print("Profile A => ", profile_a.get_attribute('href'))

# 친구목록
friends_a = driver.find_element_by_xpath(
    '//*[@id="mount_0_0"]/div/div[1]/div[1]/div[3]/div/div/div[1]/div[1]/div/div[1]/div/div/div[1]/div/div/div[1]/div[1]/ul/li[2]/div/a')
print("Friends A => ", friends_a.get_attribute('href'))

# driver.get(profile_a.get_attribute('href'))   # 프로필 링크
driver.get(friends_a.get_attribute('href'))     # 친구목록 링크
profile
배운 것을 기록합니다 :)

0개의 댓글