Week 7. 웹크롤링

BEBELOG·2022년 9월 11일
0

웹크롤링

웹상의 데이터를 자동으로 수집하는 행위

1. Beautiful soup

  • HTML 문서를 탐색해서 원하는 부분만 쉽게 뽑아내는 파이썬 라이브러리
  • 웹페이지를 요청한 뒤, .content로 지정한 후 BeautifulSoup을 통해 soup으로 지정

import requests
from bs4 import BeautifulSoup
webpage = requests.get(url)
soup = Beautifulsoup(webpage.content, "html.parser")
print(soup)

  • 웹사이트 구조 분석
    F12 -> 개발자도구

  • find_all() : 싹 가져오기

  • CSS 선택자를 통해 원하는 부분 가져오기

class 앞에는 .(점) 찍기
id 앞에는 #

2. Selenium

클릭하거나 문자를 입력하는 등의 명령을 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/

3. BeautifulSoup VS Selenium

BeautifulSoup은 HTML문서를 피싱해 이용함으로 속도는 빠르지만 브라우저의 동작을 흉내내거나 자바스크립트를 이용해 동적으로 생성되는 요소는 얻을 수 없다.

Selenium은 브라우저를 이용하므로 동적으로 생성된 요소를 이용가능하나 속도가 느리다.

profile
비전공자 Will be 전문가

0개의 댓글