네이버 블로그 open API 로 크롤링한 결과를
docx 파일로 저장하기
(한 페이지에 5건씩 보여지게)
def naverBlogOpenAPI_to_docx(x,y,z,m) :
# x = 검색어
# y = start_point
# z = display_count
# m = word 파일 내에서 페이지 나누는 기준 건수
import requests
from urllib.parse import urlparse
import docx
# docx 파일 생성
wordfile = docx.Document()
# 헤더 생성
wordfile.add_heading('open API 활용 네이버 블로그 검색 결과 크롤링', 0)
wordfile.add_heading("검색어 : " + str(x) + "\t/" + "검색 결과 : 총 " + str(y * z) + "개", 1)
keyword = str(x)
i = 1
cnt = 0
for i in range(1, y+1) :
if i == 1 :
url = "https://openapi.naver.com/v1/search/blog?query=" + \
keyword + "&display=" + str(z) + "&start=" + str(i)
elif i > 1 :
url = "https://openapi.naver.com/v1/search/blog?query=" + \
keyword + "&display=" + str(z) + "&start=" + str((i-1)*z + 1)
result = requests.get(urlparse(url).geturl(),
headers={"X-Naver-Client-Id":"________",
"X-Naver-Client-Secret":"_______"})
json_data = result.json()
for item in json_data['items']:
cnt += 1
globals()['blog_result{}'.format(cnt)] = \
wordfile.add_heading(item['title'].replace("<b>", "").replace("</b>", ""), 4)
globals()['blog_result{}'.format(cnt)] = \
wordfile.add_paragraph(item['description'].replace("<b>", "").replace("</b>","") + "\n")
if (cnt) % m == 0 :
next_page = globals()['blog_result{}'.format(cnt)].add_run()
next_page.add_break(docx.text.run.WD_BREAK.PAGE)
wordfile.save("C:/Users/student/Desktop/python/P_3week/연습(openAPI+docx).docx")