본문 바로가기
Python

[python] 네이버 블로그 전체 주소 제목 URL 리스트 추출 저장 크롤링

by 퍼포먼스마케팅코더 2022. 9. 5.
반응형

python 네이버 블로그 전체 주소 제목 URL 리스트 추출 저장 크롤링 

오늘의 그거는 네이버 블로그 전체 주소를 어떻게 하면 제목하고 url 리스트만 뽑아서 이걸 크로링 해서 저장을 하는 과정 이것에 대해서 가지고 와봤습니다. 파이썬 코딩으로 아까 만들어 놨었었는데요. 이것에 대한 용도는 아주 간단합니다 만약 여러분들이 네이버 블로그를 오랫동안 이용하셨었다고 한다면 한 블로그 전체 글로만 보더라도 거의 한 2천 개 이상이 넘어갈 거예요.

 

만약에 블로그를 많이 이용을 안 하시고 최근에 이용을 하셨다면 블로그전체 글 수가 거의 한 100개에서 한 500개 이 사이로만 될 텐데 오랫동안 블로그를 애지중지하시면서 운영하셨던 분들이라면 블로그전체 글수가 거의 기본 1천 개가 이상 넘어갑니다. 1천 개가 이상 넘어가면서 자기가 이전에 블로그포스팅을 작성을 했었던 것들이 관리가 안 되는 그런 경우가 있어요. 그리고 어떤 특정한 글 리스트 이런 것들을 보고 싶다.

 

이런 걸 할 때도 그게 안 되어 있는 경우가 간혹씩 있습니다. 그걸 방지하기 차원에서 전체 리스트를 보고 저희가 뭔가 네이버 블로그안에서도 백업 시스템이 있습니다. 백업 시스템을 살펴봐서 자기가 작성했었던 것 중에 뭔가 소중한 그런 포스팅 글 정보 이런 것들을 뭔가 볼 수 있도록 하는 조치 차원에서 만들어 놓은 겁니다. 이용을 해보셨으면 좋겠고요 파이선 코딩으로 작성되어 있는 이 부분에서는 여러분의 블로그아이디하고 여러분의 전체 골수에 페이지 수만 입력만 해놓으면 밑에 리스트로 출력이 돼서 나오도록 해놨습니다. 별다른 것은 없고요 참고사항으로만 보시면 될 것 같습니다.

 

import requests
from bs4 import BeautifulSoup
import re
import json
import urllib.parse

blogId= 'naver_search'  #블로그 아이디만 입력
#page = 5 #페이지 수

for page in range(0, 1) :  #페이지 수에 맞게끔 바꾸면 됨
    blog_postlist_url = 'https://blog.naver.com/PostTitleListAsync.naver?blogId={}&viewdate=&currentPage={}&categoryNo=0&parentCategoryNo=0&countPerPage=30'.format(blogId, page)
    headers = { 'Accept-Language' : 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,zh;q=0.5',
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36',
                'Accept-Encoding': 'gzip'
    }

    raw = requests.get(url=blog_postlist_url, headers=headers)
    html = BeautifulSoup(raw.text, 'lxml') 
    postlists = json.loads(html.text) #json 형식으로 가져오기
    postlists = postlists['postList']  #json 가져오기

    for postlist in postlists :
        logNo = postlist['logNo']  #logNo 
        title = postlist['title']  #제목
        title = urllib.parse.unquote(title) #한글화
        title = title.replace("+", " ") #필터링
        title = title.replace(",", "") #필터링
        title = title.replace("<", "") #필터링
        title = title.replace(">", "") #필터링
        title = title.replace("'", "") #필터링 
        
        blog_url = 'https://blog.naver.com/PostView.naver?blogId={}&logNo={}'.format(blogId, logNo) #url 완성
        print(blog_url) #url 리스트
        print(title) #url 리스트
반응형

댓글