웹상의 데이터를 자동으로 수집하는 행위
import requests
from bs4 import BeautifulSoup
webpage = requests.get(url)
soup = Beautifulsoup(webpage.content, "html.parser")
print(soup)
웹사이트 구조 분석
F12 -> 개발자도구
find_all() : 싹 가져오기
CSS 선택자를 통해 원하는 부분 가져오기
class 앞에는 .(점) 찍기
id 앞에는 #
클릭하거나 문자를 입력하는 등의 명령을 selenium 패키지가 대신해줌
1) 조작을 원하는 버튼이나 입력창의 html을 파악
2) 함수에 html 정보를 입력
find_element_by_css_selector( )
find_element_by_xpath( )
3) .click() / .send_key()
*chromedriver 설치 해야 코드가 정상적으로 작동함
# selenium의 webdriver를 사용하기 위한 import
from selenium import webdriver
# selenium으로 무엇인가 입력하기 위한 import
from selenium.webdriver.common.keys import Keys
# 페이지 로딩을 기다리는데에 사용할 time 모듈 import
import time
# 크롬드라이버 실행 (경로 예: '/Users/Roy/Downloads/chromedriver')
driver = webdriver.Chrome('chromedriver의 경로를 입력할 것')
#크롬 드라이버에 url 주소 넣고 실행
driver.get('https://www.google.co.kr/')
# 페이지가 완전히 로딩되도록 3초동안 기다림
time.sleep(3)
[출처]
https://coding-kindergarten.tistory.com/
BeautifulSoup은 HTML문서를 피싱해 이용함으로 속도는 빠르지만 브라우저의 동작을 흉내내거나 자바스크립트를 이용해 동적으로 생성되는 요소는 얻을 수 없다.
Selenium은 브라우저를 이용하므로 동적으로 생성된 요소를 이용가능하나 속도가 느리다.