TIL - 20.10.26 (Python, Web Scraping)

예니·2020년 10월 26일
0

TIL

목록 보기
13/25

파이썬으로 웹 스크래퍼 만들어보기
requests, BeautifulSoup 패키지 이용


📖 BeautifulSoup

📌 사용법

from bs4 import BeautifulSoup


📌 html 파싱

soup = BeautifulSoup(data.text, 'html.parser')

data는 대상 url을 requests.get으로 받아온 것
html.parser 이용해서 BeautifulSoup에게 html이라는 걸 알려주기

📌 필요한 부분 선택 select()

soup.select('원하는 정보')

한개 찾을때는 select_one() (복수면 가장 위의 것 선택됨)
원하는 정보에는 css selector 들어감
select는 복수의 그룹 형태로 결과 반환하므로
soup.select('원하는 정보')[0] 처럼 필요한 부분 지정해주거나 반복문으로 작업


📌 원하는 정보 추출

  • 태그에 둘러싸인 정보
    select로 정보 받아오면 <태그>정보<태그> 이렇게 싸여있음
    soup.select('원하는 정보').text
    text 붙여주면 정보만 추출 가능
  • 태그 안에 있는 정보
    <img src="~~" alt=정보>
    alt 만 받아오고 싶다면
    soup.select('원하는 정보')[0]['alt']
    원하는 속성 붙여주면 됨

📖 BeautifulSoup, selenium 차이

BeautifulSoup 으로 하려니 안되는 사이트가 꽤 많았다.
그래서 찾아보니 BeautifulSoup은 JS로 그때그때 만들어주는 동적인 웹사이트에는 못쓴다고..

웹 크롤링할때 주로 쓰이는 패키지 두가지 차이점

  • BeautifulSoup
    - 장: 사용하기 쉽고, 간단, 빠름
    - 단 : javascript 렌더링이 필요한 사이트들을 크롤링하기 어려움
  • selenium
    - 장 : javascript 렌더링 기능 지원, 사용방법이 직관적이고 쉬움
    - 단 : 느림, 메모리 차지 큼

0개의 댓글