로그인

  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

정보&강의 티스토리 이미지 및 첨부파일 다운로드 파이썬 소스


from bs4 import BeautifulSoup
from urllib import request
import requests
import re 
 
def get_content(url):
    files = {} # 파일명과 파일경로가 저장될 사전을 정의함
    title = "" # 문서명을 정의함
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
    req = requests.get(url, headers=headers)
    content = req.content
 
    soup = BeautifulSoup(content, 'html.parser')
    temp = soup.select_one('#content > div.boxMid > div > div.container > div.article > div')
    title = soup.select_one('#content > div.boxMid > div > div.titleWrap > h2 > a')
    title = title.text
    lyrics = temp.text

    # 스샷 이미지 추출
    findImgTag = temp.find_all('img')
    for x in findImgTag:
        if 'filename' in x.attrs:  # 내부에 있는 항목들을 리스트로 가져옵니다
            imgUrl = x.attrs['src']
            imgName = x.attrs['filename']
            files[imgName] = imgUrl # files 사전에 추가함.

    # 파워 포인트 파일 추출
    findFileTag = temp.find_all("a")
    for x in findFileTag:
        if 'cfile' in x.attrs['href']: 
            filesUrl = x.attrs['href']
            filesName = x.text
            files[filesName] = filesUrl # files 사전에 추가함.

    return title, lyrics, files


url = 'https://*********.tistory.com/11173'
title, lyrics, files = get_content(url)

lyrics = lyrics.split('\n')[0]
print(title)
print("")
print(lyrics.split('\n'))
print("")
print(files)

for file_name, file_url in files.items():
    request.urlretrieve(file_url, file_name)
    print("{name}을 저장하였습니다.".format(name=file_name))

 

티스토리의 본문 이미지와 첨부파일을 일괄 다운로드 하는 파이썬 소스입니다.

티스토리의 스킨에 따라서 BeautifulSoup CSS 선택자가 달라집니다.

 

조금만 파이썬 공부를 하셔도 수정 및 응용이 가능한 소스이니 공부에 참고하시기 바랍니다.


이런 글도 찾아보세요!

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 0

권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?