파이썬 프로그래밍으로 업무 자동화 할 줄 아는 스마트한 퍼포먼스 마케터 되기 첫번째 프로젝트!
파이썬 셀레니움으로 네이버 연관검색어를 자동 추출하는, 크롤링, 웹 스크래핑 코드를 작성해보았다.
keyword_list에 연관검색어를 모니터링 하고 싶은 키워드를 작성해서 실행하면, 키워드별 연관검색어가 하나의 열로 저장되도록 만들었다.
1. 사용한 라이브러리 목록
- 네이버 연관검색어 크롤링을 하기 위해 셀레니움을 사용했다.
- 크롤링 한 검색어를 엑셀 파일에 저장하기 위해서 openpyxl과 pandas를 사용했다.
from selenium import webdriver
import time
from openpyxl import Workbook
import pandas as pd
2. keyword_list에 모니터링 할 키워드 작성하기
- 네이버 연관검색어를 저장해둘 엑셀 시트를 하나 생성해둔다.
- 셀레니움 크롬 웹드라이버를 실행시킨다.
- 키워드별 연관검색어를 저장해두기 위해 final이라는 빈 딕셔너리를 생성해둔다.
wb = Workbook()
ws = wb.create_sheet()
driver = webdriver.Chrome()
final = {}
3. keyword_list에 모니터링 할 키워드 작성하기
- 여러 라면의 연관검색어를 추출해 보려고, 아래와 같이 신라면, 진라면, 열라면, 안성탕면, 무파마 키워드를 리스트에 넣어주었다.
- 모니터링 하고 싶은 키워드 리스트를 keyword_list에 갯수 제한 없이 자유롭게 기입하면 된다.
# 연관검색어 추출할 쿼리 리스트
keyword_list = ['신라면', '진라면', '열라면', '안성탕면', '무파마']
4. keyword_list에 들어있는 키워드의 네이버 연관검색어 가져오기
- for문을 통해 keyword_list에 들어있는 키워드들의 네이버 연관검색어를 모두 크롤링 해서 가져오도록 코드를 작성했다.
- 이 코드는 아무 변형 없이 그대로 사용하면 된다.
for i in range(len(keyword_list)):
URL = "https://search.naver.com/search.naver?ie=UTF-8&sm=whl_hty&query={}".format(keyword_list[i])
driver.get(URL)
driver.implicitly_wait(3)
searches = driver.find_elements_by_css_selector(".lst_related_srch li")
temp = []
for keyword in searches:
result = keyword.text
temp.append(result)
final[keyword_list[i]] = pd.Series(temp)
5. 크롤링한 네이버연관검색어 엑셀파일로 저장하기
- pandas를 이용해 데이터프레임 형태로 저장한 네이버 연관검색어를 엑셀파일로 저장하는 코드이다.
- 엑셀 파일명을 수정 원할 경우, 'result' 영역에 원하는 파일명을 기입하면 된다.
df = pd.DataFrame(final)
df.to_excel('result.xlsx')
6. 네이버 연관검색어 크롤링 전체 코드
from selenium import webdriver
import time
from openpyxl import Workbook
import pandas as pd
wb = Workbook()
ws = wb.create_sheet()
driver = webdriver.Chrome()
final = {}
# 연관검색어 추출할 쿼리 리스트
keyword_list = ['신라면', '진라면', '열라면', '안성탕면', '무파마']
for i in range(len(keyword_list)):
URL = "https://search.naver.com/search.naver?ie=UTF-8&sm=whl_hty&query={}".format(keyword_list[i])
driver.get(URL)
driver.implicitly_wait(3)
searches = driver.find_elements_by_css_selector(".lst_related_srch li")
temp = []
for keyword in searches:
result = keyword.text
temp.append(result)
final[keyword_list[i]] = pd.Series(temp)
df = pd.DataFrame(final)
df.to_excel('result.xlsx')
driver.quit()
7. 실행결과
- 아래와 같이 키워드별 연관검색어가 1개의 열로 잘 저장된 것을 확인할 수 있다.
- 무파마는 연관검색어가 7개뿐이라 7개만 저장되었다.
'마케터의 기록 > 파이썬 공부 중' 카테고리의 다른 글
파이썬으로 인스타그램 이미지 다운로드 하는 법 (2) | 2021.06.13 |
---|---|
파이썬 셀레니움으로 인스타그램 댓글 크롤링 하기 (5) | 2021.06.05 |
파이썬 셀레니움/뷰티풀수프로 유튜브 댓글 크롤링 하기 (3) | 2021.04.18 |