728x90

파이썬 웹크롤링 패키지로 크게 BeautifulSoup과 selenium이 있습니다.

 

BeautifulSoup으로는 동적페이지를 파싱해오기 어렵기때문에

동적페이지에서는 selenium을 사용하고 정적페이지에서는 BeautifulSoup을 써도 무방합니다.

 

먼저 BeautifulSoup에 대해서 위키백과 설명을 보면

HTML과 XML 문서들의 구문을 분석하기 위한 파이썬 패키지이다

HTML로부터 데이터를 추출하기 위해 사용할 수 있는 파싱된 페이지의 파스 트리를 만드는데, 이는 웹 스크래핑에 유용하다

이렇게 나와있습니다.

 

BeautifulSoup을 사용하면 계층구조로 된 html태그를 바탕으로 쉽게 파싱을 해올 수 있는데

먼저 파싱해올 url을 아래와 같이 입력하여 가져옵니다.

 

from bs4 import BeautifulSoup
from urllib.request import urlopen

if __name__ == "__main__":
    url = 'https://naver.com'
    html = urlopen(url)
    bsObject = BeautifulSoup(html, "html.parser")

그 후 가져오고 싶은 영역이 있으면 .find()를이용해서 가져온 bsObject 안에서 해당 태그를 가져옵니다

print(bsObject.find('div', 'list_theme_wrap'))

만약에 li와 같은 리스트를 가져오고 싶으면 find_all()을 사용해서 list형식으로 가져올 수도 있습니다.

print(bsObject.find_all('li', 'theme_item'))

또 그안에 있는 text를 가져오려면 .text를 용한뒤 .strip()을 통해 좌우 공백을 지워줄 수 있습니다.

li_list = bsObject.find_all('li', 'theme_item')

    for li in li_list:
        print(li.text.strip())

 

+ Recent posts