웹 크롤링을 하려면 웹 크롤링을 간단하게 할 수 있도록 도와주는
모듈을 쓰는 게 일반적인데, 대표적으로 Beautiful Soup 모듈과 Selenium 모듈이 있다.
이 글에서 주로 소개할 모듈은 Beautiful Soup이다.
일단 이걸 사용하려면 cmd 창을 열어서 설치를 해줘야 한다.
윈도 검색창에 cmd 입력 + Enter를 치면 알아서 열린다.
아무튼 cmd를 열어주었으면, pip install requests를 입력해 준다. (복붙 가능)
pip install requests
이렇게 입력해 주면 되고, 나는 이미 설치되어 있어서 already satisfied라는 말이 뜨는 걸 볼 수 있다.
아무튼 이제 코드 편집기로 돌아가자. 만약 본인이 VSCode를 사용하고 있다면 Python 익스텐션을 깔아줘야만 한다.
여기로 가서 검색창에 Python을 쳐주고, 최상단에 나오는 걸 다운로드하면 된다.
이제 코드 편집기로 돌아가서, import requests라는 코드를 적어준다.
import requests
그리고 변수를 저장해서 편하게 쓰기 위해서 from bs4 import BeautifulSoup를 입력해 준다.
from bs4 import BeautifulSoup
이렇게 하면 BeautifulSoup를 사용가능하다.
이제 기본적으로 크롤링할 웹의 url을 선택해야 한다.
그 의미를 갖는 코드는 htmls = requests.get(url)와 bs = BeautifulSoup(htmls.content, "html.parser")이다.
url = 'https://www.youtube.com/watch?v=rLNDg9A2zws' #url 변수
htmls = requests.get(url)
bs = BeautifulSoup(htmls.content, 'html.parser')
이렇게 작성해 주면 기본적인 준비는 끝난다.
BeautifulSoup의 기능들을 사용하고 싶으면 변수 bs.Method(Function)를 해주면 된다.
만약 여기까지 했는데 pip install.. 코드를 통해서 설치를 했음에도
코드에 오류가 나는 사람이라면 이 문제일 확률이 높으니 링크를 첨부한다.
https://alpaca-code.tistory.com/183 (오류 해결 글)
가장 대표적으로, 저 url의 제목을 가져와보자.
import requests
from bs4 import BeautifulSoup
#reqeusts 라이브러리 이용 가져오기
url = 'https://www.youtube.com/watch?v=rLNDg9A2zws'
htmls = requests.get(url)
bs = BeautifulSoup(htmls.content, 'html.parser')
print(bs.find("title").contents);
이렇게 작성하면 된다. 위에는 다 기본 세팅이고,
print(bs.find("title"). contents)가 출력을 담당한다.
bs.find(문자열)은 문자열이라는 이름을 가진 html 태그를 가져온다.
예를 들어 html 구조에 자주 쓰이는 div가 있다.
bs.find("div")를 하면 무수히 많은 div 태그가 가져와질 것이다.
근데 find_all 이 아니라서 맨 처음 쓰인 div가 하나 가져와질 것이다.
find_all은 배열로 받아와야 한다.
아무튼 같은 이유로 bs.find("title")을 했기 때문에 title 태그를 가져왔고,
. contents는 그 내용을 가져와주기 때문에 저렇게 입력하고 실행 결과를 보면
이렇게 저 url의 제목이 가져와지는 걸 알 수 있다.
bs에는. find 말고도 매우 많은 메서드, 함수들이 존재하니까
상황에 맞춰서 다양하게 활용하면 원하는 웹 크롤링을 할 수 있을 것이다.
아래의 링크는 공식문서이긴 한데 웹사이트가 좀 난해한 감이 있다.
두 개의 링크를 첨부하는데 아래 것이 UI가 편하다 번역기를 돌리거나
직접 해석할 수 있는 능력이 된다면 능력껏 해석해서 메서드의 능력을 보자.
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html (공식문서)
https://tedboy.github.io/bs4_doc/ (공식문서는 아니지만 더 잘 정리됨)
하지만 클릭은 불가능하다. 클릭을 하고 싶다면 BeautifulSoup가 아니라
위에서 언급한 Selenium을 통해서 웹 크롤링을 해야 하는데,
나도 여기까지는 잘 몰라서 이후 알게 되면 글을 올려야겠다는 생각이 든다.
이상으로 도움이 되었길 바라며,
끝.
'IT > Python' 카테고리의 다른 글
VSCode에서 파이썬 모듈을 설치했음에도 오류가 날때 (6) | 2023.08.03 |
---|---|
Python 주석달기 (0) | 2023.01.25 |
Python 형변환. (0) | 2023.01.24 |
Python 랜덤값 생성하기. Random (0) | 2023.01.24 |
Python if문, else if(elif), else. (0) | 2023.01.22 |
댓글