본문 바로가기
Information

[Python] BeautifulSoup을 이용한 네이버 블로그 크롤링 - 1

by 정티그로 2021. 5. 23.

뷰티플수프(BeautifulSoup)를 이용해 특정 키워드 검색 후 나온 결과의 네이버 블로그 제목과 URL을 가져올 예정이다. 

 

import requests
from bs4 import BeautifulSoup
from urllib.parse import quote

query = "sk하이닉스"
url = "https://search.naver.com/search.naver?where=view&sm=tab_jum&query=" + quote(query)

 

네이버에 'sk하이닉스'라고 검색한 후 View탭으로 이동하면, 아래와 같이 URL이 나오는 것을 확인할 수 있다.

 

 

quote함수를 이용해 아스키 코드 형식이 아닌 글자를 URL인코딩 해줄 필요가 있다. 그래서 query 변수에 검색할 단어를 담고, 그 후 quote함수를 사용해 URL인코딩을 해준 것이다.

 

url 변수 안에는 위 링크 정보를 담고 있다. 우리가 원하는 것은 위 화면에서 제목과 링크주소이다. 이곳에서 분석을 시작하면 된다.

 

F12를 눌러 개발자도구를 켠 후 하나씩 확인해본 결과 <li>태그로 되어 있는 것을 확인할 수 있다. BeautifulSoup의 find_all()을 이용해 <li>태그를 모두 가져올 예정이다. 코드는 다음과 같다.

 

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"}
res = requests.get(url, headers=headers)
res.raise_for_status() # 문제시 프로그램 종료
soup = BeautifulSoup(res.text, "lxml") 

posts = soup.find_all("li", attrs={"class":"bx _svp_item"})

 

posts 변수에 class가 'bx _svp_item'인 <li>태그를 모두 가져왔다. 이제 반복문을 통해 하나씩 보면서 내가 원하는 정보만 얻으면 된다.

 

우리가 원하는 제목, 링크 주소 정보는 모두 <li>태그 안에 있는 class명이 'api_txt_lines total_tit'인 <a>태그 안에 있다. 

 

링크 주소는 <a>태그의 href 정보를 가져오면 되고, 제목은 get_text()를 이용해 텍스트만 가져오면 된다.

 

for post in posts:
    post_title = post.find("a", attrs={"class":"api_txt_lines total_tit"}).get_text()
    print("제목 :",post_title)
    post_link = post.find("a", attrs={"class":"api_txt_lines total_tit"})['href']
    print("link :", post_link)
    print("-"*50)

 

검색 결과

이렇게 해서 BeautifulSoup을 통해 우리가 원하는 정보를 가져올 수 있다. 링크 주소 정보가 있으니, 조금 더 가공하면, 본문도 긁어 올 수 있을 것으로 보인다. 

 

 

2021.05.23 - [파이썬] - [Python] BeautifulSoup을 이용한 네이버 블로그 크롤링 - 2

 

[Python] BeautifulSoup을 이용한 네이버 블로그 크롤링 - 2

지난 시간에 BeautifulSoup을 이용해 네이버 View에 있는 정보(글 제목, URL)를 가져왔다. [Python] BeautifulSoup을 이용한 네이버 블로그 크롤링 - 1 뷰티플수프(BeautifulSoup)를 이용해 특정 키워드 검색 후..

kissi-pro.tistory.com

2021.05.28 - [파이썬] - [Python] BeautifulSoup을 이용한 네이버 블로그 크롤링 - 3

 

[Python] BeautifulSoup을 이용한 네이버 블로그 크롤링 - 3

[Python] BeautifulSoup을 이용한 네이버 블로그 크롤링 - 1 뷰티플수프(BeautifulSoup)를 이용해 특정 키워드 검색 후 나온 결과의 네이버 블로그 제목과 URL을 가져올 예정이다. import requests from bs4 impor..

kissi-pro.tistory.com