17 C
Seoul
일요일, 10월 27, 2024

spot_img

#2. 클롤링 특정 영역 가져오기

메인 웹 페이지에 왼쪽 상단에 2days.kr는

<a href="/" title="2days.kr" class="link_logo">2days.kr</a>

▲ 메인 웹 페이지 왼쪽 상단 2days.kr 태그 내용

a 태그가 있습니다.

<a>2days.kr</a>

이것과 같이 a로 열리고 /a로 문법을 닫는 구조이죠.

하지만 웹 사이트에서는 태그 사이에 다양한 코드를 넣습니다.

메인 웹 페이지에 2days.kr는 href, title, class 등 다양한 코드가 있습니다.

이렇게 태그가 모든 웹 페이지에 있습니다.

우리는 원하는 태그값만 크롤링 하는 것이죠

위에 태그처럼 a 태그에 여러개가 둘러쌓인것도, a 태그를 크롤링 하면 그 안에있는 내용들도 같이 크롤링됩니다.

오늘은 서론이 길었네요. 그럼 우리가 원하는 태그를 크롤링 하는 방법에 대해 알아보도록 하겠습니다.


from bs4 import BeautifulSoup
import requests
import sys

# 홈페이지 주소 가져오기
url = "https://search.naver.com/search.naver?where=news&sm=tab_jum&query=뉴스"

html = requests.get(url)
bs_html = BeautifulSoup(html.content, "html.parser")
bsObject = bs_html.find_all(attrs={"class":"news_tit"})

sys.stdout = open('Tag_Crawling.txt', 'w', encoding='UTF-8')

print(bsObject) # 웹 페이지 txt 파일로 출력

▲ Tag_Crawling.py

위 코드가 원하는 태그만을 크롤링 하는 코드입니다.

여기서 가장 중요한 부분이 있습니다.

원하는 태그를 정해주는 코드를 가져와보겠습니다.

bsObject = bs_html.find_all(attrs={"class":"news_tit"})

▲ Tag_Crawling.py 중 크롤링 할 태그 정하기

여기서는 태그가 아니라 class 라는걸로 해주었는데요.

class라는 것은 같은 태그가 아니라도 class라는 걸로 묶어주는 역할을 하는겁니다.

만약에 h1, h2, h3, p 태그가 각각 10개씩 있다고 합시다.

근데 h1, h2, h3, p 태그를 전부다 글 색깔을 빨간색깔로 바꿀겁니다.

그럼 h1 태그에 색깔을 빨갛게 하고, 또 따로 h2 태그에 색깔을 빨갛게 하고 이렇게 반복하면 여러작업을 해야겠죠.

뭐 어찌어찌 태그가 각각 10개씩 밖에 없다면 어찌어찌 할 수 있지만, 만약에 웹 페이지가 큰 구글이나, 네이버라면 굉장한 노가다를 해야겠죠. 그걸 묶어주는 겁니다.

h1, h2, h3, p 태그에 class를 color-write로 지정을 해주면 color-write 클래스에서 한번에 다 바꿀수 있기 때문에

웬만한 사이트에서는 class를 사용합니다.

위에 있는 코드에서 class는 news_tit 이라고 되어있는데, 저는 지금 네이버 뉴스를 크롤링 하려고 합니다.

네이버 뉴스에 있는 뉴스들의 제목은 news_tit라는 class로 이루어져 있기 때문에

저는 class로 해주었습니다. 그리고 class와 비슷한 id도 있습니다. 참고만 해주시기 바랍니다.

자세한 내용은 다음에 강좌로 만들어보도록 하겠습니다.

크롤링 할 태그 정하는 것은

bs_html.find_all()

여러가지가 있지만 그 중 3가지만 방법에 대해 알아보겠습니다.

Tag(태그)‘미정값’
classattrs={“class”:”미정값”}
idid=’미정값’

미정값 : 태그, class, id 이름

bs_html.find_all() 괄호 안에 작성해주시면 됩니다.

이렇게 넣어주시면 됩니다.

한 번 작동시켜 볼까요?

 

▲&nbsp; Tag_Crawling.py 실행 결과

 

정상적으로 작동하여 class가 news_tit인 태그와 그 값을 다 txt 파일에 잘 저장된 것을 확인할 수 있습니다.

지금까지 읽어주셔서 감사합니다.

지금까지 웹 페이지 원하는 태그만 크롤링 하는 방법이었습니다

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

Related Articles

Stay Connected

18,393FansLike
128,393FollowersFollow
81,934SubscribersSubscribe

Latest Articles