[Crawling] 3. Selenium

최창우·2022년 9월 6일
0

Crawling

목록 보기
3/3
post-thumbnail

📜 Selenium 대해서 알아보자.

📕 selenium 사용하기

selenium은 웹 애플리케이션 테스트를 위한 포터블 프레임워크 이다.
웹페이지 자동화기능을 제공

설치 필요 요소

  1. selenium 설치
    • pip install selenium
  2. 웹 드라이버 (크롬용 다운로드)
    • "설정 >> chrome 정보"를 통해 크롬버전확인
    • 버전에 맞는 chrome driver 다운로드
    • 작업 폴더내에 압축풀기 (윈도우에서는 잘되는데 맥은 바로는 안된다..)
  3. 맥북 기존 path (usr/local/bin) 폴더내에 chromedriver(압축푼거) 이동
  4. xattr -d com.apple.quarantine /usr/local/bin/chromedriver 차단해제

참고 사이트
https://haloaround.tistory.com/215
https://intrepidgeeks.com/tutorial/mac-install-chrome-driver-set-path-and-resolve-mac-errors

📖 기본 틀

from selenium import webdriver # 크롬 자동화위함

url = "http://naver.com"

# 윈도우 기준 (webdrive 경로설정)
dir = "/Users/changwoo/Desktop/STUDY/Not_AI/Crawling/chromedriver.exe"
browser = webdriver.Chrome(dir) # 실행파일과 chromedriver가 같은 경로일경우 Chrome() 만 가능

# 맥기준
browser = webdriver.Chrome(chromedriver) 

browser.get(url)

📕 메소드 사용하기

📖 탐색하기

기본 구조 : browser.findelement_by속성명
1. browser.find_element_by_class_name("클래스명")
2. browser.find_element_by_id("아이디")
3. browser.find_element_by_tag_name("태그")
4. browser.find_element_by_xpath("경로")

  • 추가 : send_keys(값) 으로 값을 입력할 수 있다.
  • 추가 : 복수개를 들고올경우 find_elements를 사용하면된다.
  1. 클래스명으로 탐색하기.
login_button = browser.find_element_by_class_name("link_login")
login_button.click()
  1. 아이디로 탐색하기
id_button = browser.find_element_by_id_name("id")
id_button.send_keys(아이디내용)
  1. 태그로 탐색하기
  2. xpath로 탐색하기 (해당 element의 우클릭에서 copy full xpath로 경로값 복사할 수 있음)
id_button = browser.find_element_by_xpath(복사한경로)
id_button.send_keys(아이디내용)

📖 그 외 메소드

  1. 속성값 얻기
    객체.get_attribute(속성명)
elem = browser.find_element_by_tag_name("a")
for e in elem:
	e.get_attribute("href")
  1. browser 메소드
browser.back() : 뒤로 가기
browser.forward() : 앞으로 가기
browser.refresh() : 새로고침
browser.close() : 현재 탭 끄기
browser.quit() : 브라우저 전체 끄기
  1. 객체.click() : 클릭
login_button = browser.find_element_by_class_name("link_login")
login_button.click()
  1. 글 보내기
id_button = browser.find_element_by_xpath(복사한경로)
id_button.send_keys(아이디내용)
  1. 명령어보내기
  • 객체.send_keys(Keys.ENTER)

📚 Reference

내용들은 전부 코딩 유튜브를 운영하고 계신 나도코딩 님의 영상을 공부하여 정리한 글입니다. 정말 설명잘하십니다. 한번 꼭 보세요!

profile
유능한 개발자가 되고 싶은 헬린이

0개의 댓글