부탁을 받아서 

네이버에서 특정 키워드를 검색하고, 블로그에서 나온 자료를 크롤링 한 뒤 분석하는 걸 하게됐다.

 

python selenium webdriver를 사용해서 특정 키워드를 검색하고,

블로그 본문 내용을 가지고있는 element를 가져와서 변수에 저장한 뒤

형태소 분석을 통해 문단을 잘라서 특정 키워드가 얼마나 언급되는지를 분석할 것이다.

 

검색은 네이버 블로그 링크에서 검색어만 바꿔가면서 진행한다.

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from selenium import webdriver
import time
 
# 크롬 웹브라우저 실행
path = "D:/4_projects/chromedriver.exe"
 
driver = webdriver.Chrome(path)
url_list = []
content_list = ""
text = "검색하고 싶은 검색어 입력"
 
for i in range(13):  # 1~2페이지까지의 블로그 내용을 읽어옴
    url = 'https://section.blog.naver.com/Search/Post.nhn?pageNo='+ str(i) + '&rangeType=ALL&orderBy=sim&keyword=' + text
    driver.get(url)
    time.sleep(0.5)
 
    for j in range(13): # 각 블로그 주소 저장
        titles = driver.find_element_by_xpath('/html/body/ui-view/div/main/div/div/section/div[2]/div['+str(j)+']/div/div[1]/div[1]/a[1]')
        title = titles.get_attribute('href')
        url_list.append(title)
 
print("url 수집 끝, 해당 url 데이터 크롤링")
 
for url in url_list: # 수집한 url 만큼 반복
    driver.get(url) # 해당 url로 이동
 
    driver.switch_to.frame('mainFrame')
    overlays = ".se-component.se-text.se-l-default" # 내용 크롤링
    contents = driver.find_elements_by_css_selector(overlays)
 
    for content in contents:
        content_list = content_list + content.text # content_list 라는 값에 + 하면서 점점 누적
cs

selenium webdriver를 설치해야 한다.

첫번째 반복문의 범위를 변경해서 몇 페이지에 있는 블로그 글까지 수집할 건지 반복한다.

 

가장 먼저 해당 블로그들의 url 을 먼저 수집하고

다음 반복문에서 그 url로 이동해서 블로그의 본문 데이터를 수집한다.

 

 


다음 게시글에서는 konlpy를 사용해서 형태소 단위로 분석하고 각 키워드별로 count 해서

검색어에 따라 어떤 연관된 키워드가 등장하는지를 분석해본다.

 


형태소 분석 및 데이터 시각화가 추가된 2편을 작성했습니다.

링크

 

[python] 네이버 블로그 크롤링 및 분석하기 (2)

1편 에서 네이버 블로그 검색을 통해 블로그 게시글을 크롤링 하는 부분까지 구현했다. [python] 네이버 블로그 크롤링 및 분석하기 (1) 부탁을 받아서 네이버에서 특정 키워드를 검색하고, 블로그

yong0810.tistory.com

 

+ Recent posts