Python 이라는 언어가 가장 사람들의 관심을 많이 끌고 있는 이유 중 하나가 아무래도 크롤링.
그리고 그 크롤링이 다른 언어들에도 있지만, 굳이 파이썬으로 하는 이유는 굉장히 쉽고 간단하게 원하는 정보들을 추출할 수 있기 때문이랄까.
이번엔 쉬어갈 겸 Crawling 에 대해 간단히 돌려볼까 한다.
설치가 안되어 있다면,
아래 참조.
설치가 완료되었다면,
beautifulsoup 모듈을 설치해준다.
먼저 vscode를 실행하고, terminal에서 beautifulsoup 설치 명령어를 넣어준다.
가끔 beautifulsoup을 설치하려는데 웬 엉뚱한걸 설치할까 싶어하는 분들이 있는데,
pip3 install bs4
처음 import 할때 구문을
from bs4 import BeautifulSoup
이라고 하니, 쉽게 넣어준다.
#!/usr/bin/env python3
# Anchor extraction from HTML document
from bs4 import BeautifulSoup
from urllib.request import urlopen
with urlopen('https://en.wikipedia.org/wiki/Main_Page') as response:
soup = BeautifulSoup(response, 'html.parser')
for anchor in soup.find_all('a'):
print(anchor.get('href', '/'))
Python Crawling 관련한 책에서 많이 하는 것과 같이, 우리는 wikipedia 영문페이지에 담겨있는 'a' tag만 추출했다.
urllib의 urlopen을 이용해 특정사이트를 'response'라는 이름으로 연다.
BeautifulSoup에서 열린 response 내에 담긴 사이트의 html코드를 분석해 soup에 담고,
soup에 담긴 'a' 태그가 달린 모든 것들을 anchor를 돌려가면서 href (a tag가 붙어있는 주소가 나올거다) 만 '/' 줄을 바꿔가면서 출력하도록 한다.
참고문서
https://www.crummy.com/software/BeautifulSoup/bs4/doc.ko/