본문 바로가기
Python

[python] 다음 블로그 URL 추출 및 백업

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

python 다음 블로그 URL 추출 및 백업

이거는 최근에 다음 블로그가 서비스가 종료가 된다고 합니다. 티스토리로 이전하는 그게 있는데 말 그대로 얼마 안 남았어요. 다음 서비스를 거의 종료한다고 합니다. 여러분들의 이 글과 이미지 이런 것들이 티스토리로 넘어간다든가 아니면 다음 내에서는 거의 볼 수 없는 지경이 남아있었죠. 오늘은 여러분들한테 다음 블로그의 url을 추출하거나 혹은 백업할 수 있는 이 방법에 대해서 밑에 코딩으로 적어놨습니다. 

 

이거는 이미지는 제외를 하고요 여러분 글 내에 어떤 중요한 특정 파일이 있는 경우에는 그거를 가지고 올 수 있도록 하는 장치라고 생각하시면 될 것 같습니다. 어떤 url을 추출을 해놓고 그것에 파일을 다운로드 받을 수 있게끔 하는 용도고요 여러분 다음 블로그 내에 있는 url에 전체 글 리스트나 이런 것은 아닙니다. 특정 파일이 뭔가 많이 다음 블로그에다 올려놨다. 중요하다 그다음에 예전에 정리했었던 많은 수만 가지 파일이 있지 않습니까 그거를 뭔가 활용하는 차원에서 생각을 해보시면 될 것 같습니다. 파이썬을 코딩을 해놨었고요 여기도 마찬가지입니다. 여러분의 블로그 아이디만 집어넣어놓고 여러분의 전체 페이지 수가 어느 정도야라는 거를 확인만 해놓으시고 쿼리만 돌리시면 됩니다. 그러면 파이썬 코딩을 돌리시면 결과 값이 나올 텐데 결과값에 따라서 활용만 해보시면 될 것 같아요. 용도로만 활용하시면 될 것 같습니다.

 

import requests
from bs4 import BeautifulSoup
import re
import time

#56

for page in range(1, 57) :
    blogId = 'you1990'
    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'
    }

    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 :
        i = i.find('a')['href']
        detail_url = 'https://blog.daum.net' + str(i)
        #print(url)
        
        ###상세 블로그 페이지 들어가기
        
        detail_raw = requests.get(url=detail_url, headers=headers)
        detail_html = BeautifulSoup(detail_raw.text, 'html.parser')
        #print(html)
        
        detail_results = detail_html.find_all('a')
        for j in detail_results :
            try :
                text =j['title']
                if not text.find('1개월 앞의 달력을 보여줍니다.') == -1  :  #해당 글자가 정확히 맞아 떨어진다면 패스
                    pass
                elif not text.find('현재 달의 달력을 보여줍니다.') == -1 : #해당 글자가 정확히 맞아 떨어진다면 패스
                    pass
                elif not text.find('1개월 뒤의 달력을 보여줍니다.') == -1 : #해당 글자가 정확히 맞아 떨어진다면 패스
                    pass
                else :
                    print(text)
            except :
                pass
         
        time.sleep(1)  #1초

    print(str(page) + " 의 페이지 현재 완료")

print("최종완료")

 

 

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

#https://blog.daum.net/ki3696/38571
    
f = open (r"C:\Users\user\Desktop\text.txt", 'w', encoding='utf-8-sig')
new_list = []    
for page in range(1, 53) :
    blogId = 'ki3696'
    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'
    }

    raw = requests.get(url=url, headers=headers)
    html = BeautifulSoup(raw.text, 'html.parser')

    results = html.find_all('div', {'class' : 'box-timeline'})
    #print(results)
    for i in results :
        i = i.find('a')['href']
        detail_url = 'https://blog.daum.net' + str(i)
        #print(detail_url)
        detail_raw = requests.get(url=detail_url, headers=headers)
        detail_html = BeautifulSoup(detail_raw.text, 'html.parser')

        #print(detail_html)
        detail_results = detail_html.find_all('a')

        for j in detail_results :
            try :
                text = j['href']
                #print(text)
                if not text.find("download") == -1 :
                    #print(text)
                    new_list.append(text)
                    f.write(text +'\n')
                else :
                    pass
            except :
                pass
print("완료")
f.close()

 

 

 

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

#204702

f = open (r"C:\Users\user\Desktop\text.txt", 'w', encoding='utf-8-sig')
new_list = []    
for page in range(1, 583) :
    blogId = '204702' #블로그 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'
    }

    raw = requests.get(url=url, headers=headers)
    html = BeautifulSoup(raw.text, 'html.parser')

    results = html.find_all('strong', {'class' : 'cB_Title'})  #이것만 수정
    #print(results)
    for i in results :
        i = i.find('a')['href']
        detail_url = 'https://blog.daum.net' + str(i)
        #print(detail_url)
        detail_raw = requests.get(url=detail_url, headers=headers)
        detail_html = BeautifulSoup(detail_raw.text, 'html.parser')

        #print(detail_html)
        detail_results = detail_html.find_all('a')

        for j in detail_results :
            try :
                text = j['href']
                #print(text)
                if not text.find("download") == -1 :
                    #print(text)
                    new_list.append(text)
                    f.write(text +'\n')
                else :
                    pass
            except :
                pass
    print(str(page) + ' 의 페이지 추출이 완료되었습니다.')
print("완료")
f.close()

 

 

import  urllib.request

f = open ('C:/Users/user/raw/down/test_urls.txt', 'r', encoding='utf-8')

url = f.readlines()

n= 1

for i in url :
    try :
        urllib.request.urlretrieve(i, "C:/Users/user/raw/down/down_2/"+str(n)+".hwp")   #png 아닌 jpg 파일로 저장
    except :
        pass
    n = n+1

print(str(n) + "의 멀티미디어 다운로드 완료되었습니다.")

 

반응형

댓글