BeautifulSoup 라이브러리만으로도 다양한 사이트의 정보를 추출할 수 있습니다. 그런데, BeautifulSoup에게는 한계가 있다
바로, "자바스크립트로 동적으로 생성된 정보는 가져올 수 없다"
자바스크립트가 발전을 하면서, Ajax(비동기 통신) 형태로 서버와 데이터를 주고 받아 화면에 뿌려주는 사이트가 많아 졌습니다. 이러한 형식으로 데이터를 주고 받으면 url 변경이나 새로고침 없이 데이터를 가져올 수 있다
스크래핑을 시도하여 데이터를 가져와야 하는 경우, 아무것도 가져오지 못하는 현상을 겪을 수 있다. 대부분의 경우가 자바스크립트로 HTML을 만들어서이다.
Selenium 라이브러리를 사용하는 이유는 다음과 같습니다
1. 자바스크립트가 동적으로 만든 데이터를 크롤링 하기 위해
2. 사이트의 다양한 HTML 요소에 클릭, 키보드 입력 등 이벤트를 주기 위해
Selenium을 잘 활용하면, 평소에 반복적으로 하고 있는 웹상의 업무를 자동화할 수도 있습니다.
1. 자동으로 로그인하기
2. 메일보내기 자동화
3. 블로그 이웃새글 자동좋아요 누르기
4. 인스타그램 자동으로 좋아요, 댓글 작성하기
selenium으로 크롬브라우저창 열기
driver 경로를 파일경로와 같은 곳에 둘 경우
from selenium import webdriver
driver = webdriver.Chrome()
url = 'https://www.google.com'
driver.get(url)
driver 경로를 파일경로와 다른 곳에 둘 경우
from selenium import webdriver
driver = webdriver.Chrome('driver의경로')
url = 'https://www.google.com'
driver.get(url)
원하는 태그 찾기
요소검사를 진행해서 id나 class 또는 태그명을 확인한다.
driver.find_element_by_css_selector (단수)
driver.find_elements_by_css_selector (복수)
키 입력하기
send_keys('파이썬')