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() #메모장 닫기
'Python' 카테고리의 다른 글
[python] wget 사용 방법 파일 링크 다운로드 해보기 (0) | 2022.09.07 |
---|---|
[python] 네이버 웹마스터도구 색인 URL 웹페이지 요청 자동화 해보기 (0) | 2022.09.05 |
[python] 정규식 특수문자 기타 단어 필터링 (0) | 2022.09.05 |
[python] 다음 블로그 URL 추출 및 백업 (0) | 2022.09.05 |
[python] URL 멀티미디어 다운로드 자동화 (0) | 2022.09.05 |
댓글