본문 바로가기
Python

[python] 다음 블로그 제목, 본문 내용 텍스트 추출 크롤링 후 메모장 저장

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

python 다음 블로그 제목, 본문 내용 텍스트 추출 크롤링 후 메모장 저장

아까 말씀드렸던 다음 블로그에서 제목만 제목하고 본문 내용을 크롤링 텍스트를 전부 다 다 가지고 와서 메모장에 저장하는 방법입니다. 이거 몇 가지를 아까 돌려보기는 했었었는데 돌아가기는 해요. 보아하니까 다음 블로그에 구조가 비슷비슷합니다. 이 코딩을 제가 관련됐었던 건 다 끄집어서 가지고 왔는데 여기서 유념을 해야 될 거는 블로그 아이디입니다. 
여러분의 블로그 아이디하고 전체 카테고리 전체 카테고리 내에서 이제

페이지 수가 어느 정도야 그것만 기억만 해주셔도 돌려버리시면 여러분이 포스팅으로 썼었던 글 전체를 메모장으로 받아보실 수 있습니다. 이것에 대한 용도는 이제 메모장으로 이걸 받아보는 이런 것도 있긴 하지만 근데 기본적으로 카카오에서 서비스를 만약에 종료를 한다 한다면은 약 1년 정도 유예 기간으로 해서 백업 데이터를 받아볼 수 있게끔 그거를 제공을 해줍니다. 


제공을 해주기 때문에 너무 크게 염려하실 필요는 없으실 것 같아요. 여러분의 콘텐츠나 데이터는 다 받아서 받아보실 수가 있습니다. 받아보셔서 정리를 하실 수 있기 때문에 그것에 따라서 여러분들의 뭔가 불이익을 뭔가 받아서 뭔가 없어진다거나 그거는 아니에요.  한 1년 정도 유예 기간은 가지고 있기 때문에 그거를 잘 받아서 계속적으로 여러분들이 잘 쓰시기만 하시면 되는 것 같습니다. 

 

그거기 때문에 별다르게 하루아침에 다 없애준다거나 그런 건 아닐 거예요. 티스토리라든가 이런 걸로도 이전도 되고 더 활용할 수 있는 가능성은 무궁무진하기 때문에 그것만 염두만 해두시면 될 것 같습니다.

 

import requests
from bs4 import BeautifulSoup
import re
import time
import os 

#첫번째

for page in range(1, 97) :
    blogId = 'namas.amitabha1206' #블로그 ID
    directory = 'C:/Users/user/raw/down/down_'+str(blogId)+''
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)  #폴더 없으면 생성
    except OSError:
        print("Error: Failed to create the directory.")
    
    
    url = 'https://blog.daum.net/{}/category?page={}'.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'
    }

    #f = open(str(directory)+"/"+str(blogId)+"_"+str(page)+"_.txt", 'w', encoding='utf-8-sig')  #메모장 열기
    
    raw = requests.get(url=url, headers=headers)
    html = BeautifulSoup(raw.text, 'html.parser')

    results = html.find_all('h4', {'class' : 'cB_Title'})  #이것만 수정
    for i in results :
        try : 
            i = i.find('a')['href']
            detail_url = 'https://blog.daum.net' + str(i)
            detail_raw = requests.get(url=detail_url, headers=headers)
            detail_html = BeautifulSoup(detail_raw.text, 'html.parser')
            #print(detail_html)
            detail_title = detail_html.find('meta', {'property' : 'og:title'}) #제목
            detail_title = detail_title['content']  #제목만 가져오기
            detail_title = detail_title.replace(":", "")
            detail_content = detail_html.find('div', {'class' : 'cContentBody'}) #컨텐츠
            f = open(str(directory)+"/"+str(blogId)+"_"+str(page)+"_"+str(detail_title)+".txt", 'w', encoding='utf-8-sig')  #메모장 열기
            f.write(str(detail_title)+'\n') #제목
            f.write(str(detail_content.text)+'\n') #컨텐츠
            f.close() #메모장 닫기
            print(str(page) + '의 메모장 저장 완료')
        except :
            pass
    #f.close() #메모장 닫기

 

 

 

import requests
from bs4 import BeautifulSoup
import re
import time

#두번째용

for page in range(1, 2) :
    blogId = 'dlwlstns' #블로그 ID
    url = 'https://blog.daum.net/{}/category?page={}'.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'
    }
    
    f = open("C:/Users/user/raw/down/down_"+str(blogId)+"/"+str(blogId)+"_"+str(page)+"_blog_result.txt", 'w', encoding='utf-8-sig')  #메모장 열기
    
    raw = requests.get(url=url, headers=headers)
    html = BeautifulSoup(raw.text, 'html.parser')

    results = html.find_all('ul', {'class' : 'GalleryList'})  #이것만 수정
    for i in results :
        i = i.find('a')['href']
        detail_url = 'https://blog.daum.net' + str(i)
        detail_raw = requests.get(url=detail_url, headers=headers)
        detail_html = BeautifulSoup(detail_raw.text, 'html.parser')
        #print(detail_html)
        detail_title = detail_html.find('meta', {'property' : 'og:title'}) #제목
        detail_title = detail_title['content']  #제목만 가져오기
        detail_content = detail_html.find('div', {'class' : 'cContentBody'}) #컨텐츠
        f.write(str(detail_title)+'\n') #제목
        f.write(str(detail_content.text)+'\n') #컨텐츠
        print(str(page) + '의 메모장 저장 완료')
    f.close() #메모장 닫기

 

 

import requests
from bs4 import BeautifulSoup
import re
import time
import os 

#세번째

for page in range(1, 2) :
    blogId = 'kyil0117' #블로그 ID
    directory = 'C:/Users/user/raw/down/down_'+str(blogId)+''
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)  #폴더 없으면 생성
    except OSError:
        print("Error: Failed to create the directory.")
    
    
    url = 'https://blog.daum.net/{}/category?page={}'.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'
    }

    #f = open(str(directory)+"/"+str(blogId)+"_"+str(page)+"_.txt", 'w', encoding='utf-8-sig')  #메모장 열기
    
    raw = requests.get(url=url, headers=headers)
    html = BeautifulSoup(raw.text, 'html.parser')

    results = html.find_all('div', {'class' : 'contArea'})  #이것만 수정
    for i in results :
        try : 
            i = i.find('a')['href']
            detail_url = 'https://blog.daum.net' + str(i)
            detail_raw = requests.get(url=detail_url, headers=headers)
            detail_html = BeautifulSoup(detail_raw.text, 'html.parser')
            #print(detail_html)
            detail_title = detail_html.find('meta', {'property' : 'og:title'}) #제목
            detail_title = detail_title['content']  #제목만 가져오기
            detail_content = detail_html.find('div', {'class' : 'cContentBody'}) #컨텐츠
            f = open(str(directory)+"/"+str(blogId)+"_"+str(page)+"_"+str(detail_title)+".txt", 'w', encoding='utf-8-sig')  #메모장 열기
            f.write(str(detail_title)+'\n') #제목
            f.write(str(detail_content.text)+'\n') #컨텐츠
            f.close() #메모장 닫기
            print(str(page) + '의 메모장 저장 완료')
        except :
            pass
    #f.close() #메모장 닫기

 

 

 

 

import requests
from bs4 import BeautifulSoup
import re
import time
import os 

#네번째

for page in range(1, 107) :
    blogId = 'namas.amitabha1206' #블로그 ID
    directory = 'C:/Users/user/raw/down/down_'+str(blogId)+''
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)  #폴더 없으면 생성
    except OSError:
        print("Error: Failed to create the directory.")
    
    
    url = 'https://blog.daum.net/{}/category?page={}'.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'
    }

    #f = open(str(directory)+"/"+str(blogId)+"_"+str(page)+"_.txt", 'w', encoding='utf-8-sig')  #메모장 열기
    
    raw = requests.get(url=url, headers=headers)
    html = BeautifulSoup(raw.text, 'html.parser')

    results = html.find_all('div', {'class' : 'box-timeline'})  #이것만 수정
    for i in results :
        try : 
            i = i.find('a')['href']
            detail_url = 'https://blog.daum.net' + str(i)
            detail_raw = requests.get(url=detail_url, headers=headers)
            detail_html = BeautifulSoup(detail_raw.text, 'html.parser')
            #print(detail_html)
            detail_title = detail_html.find('meta', {'property' : 'og:title'}) #제목
            detail_title = detail_title['content']  #제목만 가져오기
            detail_title = detail_title.replace(":", "")
            #detail_content = detail_html.find('div', {'class' : 'cContentBody'}) #컨텐츠
            detail_content = detail_html.find('div', {'class' : 'article-view'}) #컨텐츠2
            f = open(str(directory)+"/"+str(blogId)+"_"+str(page)+"_"+str(detail_title)+".txt", 'w', encoding='utf-8-sig')  #메모장 열기
            f.write(str(detail_title)+'\n') #제목
            f.write(str(detail_content.text)+'\n') #컨텐츠
            f.close() #메모장 닫기
            print(str(page) + '의 메모장 저장 완료')
        except :
            pass
    f.close() #메모장 닫기
반응형

댓글