关键词

利用Python+Excel制作一个视频下载器

下面是详细的Python+Excel制作视频下载器的实例教程:

制作视频下载器

实现思路

  • 利用Python的request模块向视频分享网站发出请求,并获取到视频的真实下载链接
  • 将获取到的下载链接写入Excel表格中
  • 利用Excel表格中的下载链接,利用迅雷或其他下载器实现批量下载

具体实现

1.分析网页源代码

首先,我们需要分析视频分享网站中视频下载链接的获取方式。以某视频分享网站为例,在F12开发者工具中查看该视频页面的源代码,我们可以发现视频的下载地址在类似如下的标签中:

<a data-title="xxx" href="http://XXXX" rel="noopener noreferrer" target="_blank">xxx</a>

我们需要获取到这个标签中的href属性的值。

2.编写Python爬虫程序

我们利用Python的request模块向该视频分享网站发出请求,并获取到视频的真实下载链接。代码如下:

import requests
from bs4 import BeautifulSoup

url = 'http://XXX' #视频分享网站的具体链接
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}

r = requests.get(url, headers=headers) #发出GET请求
soup = BeautifulSoup(r.text, 'lxml') #解析HTML代码
title = soup.title.string #获取视频标题
download_link = soup.find('a', {'data-title': title}).get('href') #获取视频下载链接

print(download_link)

这段代码中,我们通过BeautifulSoup模块解析该视频页面的源代码,并利用find方法获取到视频下载链接。

3.将下载链接写入Excel表格

我们将Python程序中获取到的视频下载链接,写入一个Excel表格中。代码如下:

import openpyxl

wb = openpyxl.Workbook() #新建一个工作簿
ws = wb.active #打开活动工作表

ws['A1'] = '视频链接' #写入表头
ws['A2'] = download_link #写入下载链接

wb.save('download_links.xlsx') #保存工作簿

这段代码中,我们利用openpyxl模块创建了一个新的工作簿,并在其中创建一个名为“Sheet”的活动工作表。接着,在第一行写入了一个表头,其次在第二行写入了获取到的视频下载链接,最后将工作簿保存到本地。

示例1

我们假设要下载某个视频分享网站的第一页所有视频的下载链接。我们可以通过循环获取每个视频详情页面的下载链接,并将这些链接写入Excel表格中。代码如下:

import requests
from bs4 import BeautifulSoup
import openpyxl

url = 'http://XXX' #视频分享网站的具体链接
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}

wb = openpyxl.Workbook() #新建一个工作簿
ws = wb.active #打开活动工作表
ws['A1'] = '视频链接' #写入表头

for i in range(1, 11):
    page_url = url + '/page/' + str(i) #拼接每一页的链接
    r = requests.get(page_url, headers=headers) #发出GET请求
    soup = BeautifulSoup(r.text, 'lxml') #解析HTML代码
    video_list = soup.find_all('h2', {'class': 'video-title'}) #获取当前页所有视频的标题
    for video in video_list:
        title = video.find('a').get('title') #获取每个视频的标题
        detail_url = video.find('a').get('href') #获取每个视频的详情页面链接
        detail_r = requests.get(detail_url, headers=headers) #发出GET请求
        detail_soup = BeautifulSoup(detail_r.text, 'lxml') #解析HTML代码
        download_link = detail_soup.find('a', {'data-title': title}).get('href') #获取视频下载链接
        print(download_link) #打印下载链接
        row = [download_link] #将下载链接写入列表中
        ws.append(row) #将列表写入Excel中

wb.save('download_links.xlsx') #保存工作簿

这段代码中,我们利用循环获取某视频分享网站的前10页所有视频的下载链接,将获取到的链接一个一个写入Excel表格中。

示例2

我们可以利用openpyxl模块读取Excel表格中的下载链接,自动利用迅雷或其他下载器实现批量下载。代码如下:

import openpyxl
import os

wb = openpyxl.load_workbook('./download_links.xlsx') #加载Excel文件
ws = wb.active #打开活动工作表
download_folder = './downloads' #下载文件夹
if not os.path.isdir(download_folder): #如果下载文件夹不存在,则创建下载文件夹
    os.mkdir(download_folder)

for row in ws.iter_rows(min_row=2, max_col=1, values_only=True): #遍历Excel表格中的下载链接
    download_link = row[0] #获得下载链接
    os.system(f'start {download_link}') #调用系统命令打开链接

这段代码中,我们利用openpyxl模块读取Excel表格中的下载链接,并自动调用系统命令打开链接,实现批量下载。

总结

这就是利用Python+Excel制作视频下载器的完整实例教程。主要是通过分析网页源代码,使用Python爬虫程序获取到视频的真实下载链接,并将这些链接写入Excel表格,最后自动利用迅雷或其他下载器实现批量下载。

本文链接:http://task.lmcjl.com/news/13446.html

展开阅读全文