blog

짧은 플랫폼 자동 다운로드

필요한 모듈 가져오기\nimport os.path\n에서 가져오기\n에서 import set_p...

Oct 22, 2025 · 2 min. read
シェア

필요한 모듈 가져오기


import os.path
from DrissionPage import ChromiumPage
from DrissionPage.easy_set import set_paths
os.system("pip install loguru lxml pandas")
import time
import pandas as pd
from loguru import logger
import requests
from lxml import etree

비디오 다운로드

def download_video(url_list, save_name):
 if url_list:
 req = requests.get(url_list[0].replace("//", "http://"))
 logger.info({"Downloading video": save_name})
 with open(save_name, "wb") as f:
 f.write(req.content)
def get_download_link(url):
 # URL이 //로 시작하는 경우 http로 바꿔야 합니다.://
 if url.startswith("//"):
 url = "http:" + url
 if "https://..com" not in url:
 url = "https://..com" + url
 logger.info({"get url": url})
 file_name = url.split("/")[-1][:15]
 save_name = os.path.join(save_download_video_path, "{}.mp4".format(file_name))
 if os.path.exists(save_name):
 logger.info({"already save": save_name})
 else:
 page.get(url)
 time.sleep(1)
 logger.info({"run": url})
 logger.info({"wait for loading": "10s"})
 time.sleep(10)
 root = etree.HTML(page.html)
 res = root.xpath("//video//source/@src")
 logger.info({"start downloading url": res})
 download_video(res, save_name)

브라우저 동작 예시를 만들고, 웹 페이지를 열고, 드롭다운을 3초간 기다린 다음, 드롭다운을 N번 반복합니다.

# 브라우저 드라이버 인스턴스 생성, 웹 페이지 열기, 3초간 기다린 후 아래로 스크롤, 10회 아래로 스크롤.
def create_selenium_driver(url):
 page.get(url)
 logger.info({"wait for loading": "3s", "msg": "웹 페이지 정보 로딩 대기"})
 time.sleep(3)
 for i in range(scroll_times):
 page.scroll.down(200)
 time.sleep(1)
 page_source = page.html
 root = etree.HTML(page_source)
 res = root.xpath("//a/@href")
 for i in res:
 if "video" in i:
 logger.info({"get a video url": i})
 get_download_link(i)

기타 기본 매개 변수

# edge브라우저 드라이버 경로
driver_path = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
# 드라이버 설정
set_paths(browser_path=driver_path)
# 브라우저 드라이버 인스턴스 생성
page = ChromiumPage()
page.get("https://..com/")
# 다운로드한 데이터 저장 경로
save_download_video_path = "./video"
if not os.path.exists(save_download_video_path):
 os.makedirs(save_download_video_path)
# 아래로 스크롤할 횟수
try:
 scroll_times = int(input("페이지를 몇 번 아래로 내릴지, 매번 자동으로 200픽셀을 가져올지, 다음과 같은 숫자를 입력합니다.:10>>>"))
except Exception as e:
 logger.error({"입력 오류":str(e)})
 scroll_times = 10
else:
 while True:
 res = input("please input a url")
 if res == "q":
 break
 if "video" in res:
 logger.info({"get a video url": i})
 get_download_link(i)
 else:
 create_selenium_driver(res)
# 인스턴스 닫기
page.quit()
Read next