본문 바로가기
파이썬 배우기

파이썬으로 웹크롤링 해 보기!!! 2편 (ft. 다움 브런치 기사 가져오기)

by 북노마드 2022. 5. 22.
728x90
반응형

자, 지난 시간에 이어서 웹크롤링을 계속 해 보겠습니다.

 

일단 테슬라 관련 기사 헤드라인만 가지고 오고 싶다면 어떻게 해야 할까요?

 

 

https://www.google.com/search?q=%ED%85%8C%EC%8A%AC%EB%9D%BC&rlz=1C1FKPE_koKR984KR984&sxsrf=ALiCzsY6_TwSATDNQ13gnCtGU8KgtUdJiQ:1653212090837&source=lnms&tbm=nws&sa=X&ved=2ahUKEwialKb75vL3AhWhmlYBHdzmCuUQ_AUoAXoECAMQAw&biw=1920&bih=937&dpr=1 

 

테슬라 - Google 검색

테슬라, 3주 연속 서학개미 순매수 1위…3067억원. TQQQ도 3주 연속 2위…애플 3위로 한 단계↑ 유니티소프트, 투자의견 상향 조정 신규 진입. 11시간 전

www.google.com

이 웹사이트 주소를 기억하세요! 이렇게 보입니다. 

여기서 F12를 누르면 웹페이지 코딩을 확인할 수 있습니다.

그럼 일단 구글의 테슬라 뉴스 웹페이지를 가져와 보겠습니다.

 

import requests

response = requests.get("https://www.google.com/search?q=%ED%85%8C%EC%8A%AC%EB%9D%BC&rlz=1C1FKPE_koKR984KR984&sxsrf=ALiCzsY6_TwSATDNQ13gnCtGU8KgtUdJiQ:1653212090837&source=lnms&tbm=nws&sa=X&ved=2ahUKEwialKb75vL3AhWhmlYBHdzmCuUQ_AUoAXoECAMQAw&biw=1920&bih=937&dpr=1")
html = response.text

print(html)

웹페이지 코딩 그대로 아래 창(터미널창이라고 부릅니다)에 뜨는 게 보입니다.

 

이제 진도를 더 나가보겠습니다. 여기서 고유의 이름값이 "도구"를 출력해 보겠습니다.

 

고유의 이름값은 id로 표시가 됩니다.

 

 도구의 id는 hdtb-tls입니다.

프로그래밍 언어는 이렇습니다.

import requests

from bs4 import BeautifulSoup

response = requests.get("https://www.google.com/search?q=%ED%85%8C%EC%8A%AC%EB%9D%BC&rlz=1C1FKPE_koKR984KR984&sxsrf=ALiCzsY6_TwSATDNQ13gnCtGU8KgtUdJiQ:1653212090837&source=lnms&tbm=nws&sa=X&ved=2ahUKEwialKb75vL3AhWhmlYBHdzmCuUQ_AUoAXoECAMQAw&biw=1920&bih=937&dpr=1")
html = response.text

soup = BeautifulSoup(html, 'html.parser')
word = soup.select('#hdtb-tls')

print(word)

어? 아무 것도 안 보이네?

 

아닙니다. 오류가 있는 게 아니고, 아무 것도 없습니다.

 

[]

 

결과값이 비어 있다는 말입니다. 잘 되고 있는 것이니 너무 걱정 마세요!

 

import requests

from bs4 import BeautifulSoup

response = requests.get("https://www.google.com/search?q=%ED%85%8C%EC%8A%AC%EB%9D%BC&rlz=1C1FKPE_koKR984KR984&sxsrf=ALiCzsY6_TwSATDNQ13gnCtGU8KgtUdJiQ:1653212090837&source=lnms&tbm=nws&sa=X&ved=2ahUKEwialKb75vL3AhWhmlYBHdzmCuUQ_AUoAXoECAMQAw&biw=1920&bih=937&dpr=1")
html = response.text

soup = BeautifulSoup(html, 'html.parser')
title = soup.select(".mCBkyc y355M JQe2Ld nDgy9d")

print(title)
 
 

근데 얘도 결과값이 오류가 아닌 빈 리스트가 나옵니다.

 

[]

 

이상하죠? 그래서 다움 브런치로 가서 해보겠습니다.

 

사이트 주소는 여기입니다.

https://search.daum.net/search?w=brunch&nil_search=btn&DA=NTB&enc=utf8&q=%ED%85%8C%EC%8A%AC%EB%9D%BC 

 

테슬라 – Daum 검색

Daum 검색에서 테슬라에 대한 최신정보를 찾아보세요.

search.daum.net

import requests

from bs4 import BeautifulSoup

response = requests.get("https://search.daum.net/search?w=brunch&nil_search=btn&DA=NTB&enc=utf8&q=%ED%85%8C%EC%8A%AC%EB%9D%BC")
html = response.text

soup = BeautifulSoup(html, 'html.parser')
title = soup.select('.link_brunch')

print(title)

이걸 하면 됩니다!! 아까는 사이트가 좀 이상했던 것 같습니다!

아래 터미널 창에 보면 브런치 헤드라인 제목들이 쫙 보이시죠? 

 

다음 시간에는 제목만 보일 수 있도록 조치해보겠습니다!

728x90
반응형

댓글