零代码编程:用ChatGPT批量自动下载archive.org上的音频书-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

http://archive.org 是一个神奇的网站可以下载各种古旧的软件、书籍、音频、视频还可以搜索各个网站的历史网页。

比如说一些儿童故事音频就可以在http://archive.org下载到可以用来做英语听力启蒙用。

举个例子要下载https://archive.org/details/107frogandtoadallyear_202004这个网页上的所有音频内容该怎么办呢

右击检查网页点击网络然后选择媒体然后可以看到正在播放的音频文件右击复制链接如下

https://archive.org/details/107frogandtoadallyear_202004/2-12+Alone.mp3

查看网页源代码搜索某一个音频文件标题Alone.mp3

找到了音频文件的地址

<button type="button" data-event-click-tracking="TrackList|Item" class="track selected" data-track-number="21">

<!--?lit$3345567357$--><span class="track-number"><!--?lit$3345567357$-->22</span>

<span class="track-title"><!--?lit$3345567357$-->2-12 Alone

<!--?lit$3345567357$-->

</span>

<span class="track-length">

<!--?lit$3345567357$-->

<!--?lit$3345567357$-->05:10

</span>

</button>

接下来就好办了在ChatGPT中输入提示词

你是一个Python编程专家现在要完成一个下载网页中音频的任务具体步骤如下

打开网站https://archive.org/details/107frogandtoadallyear_202004

解析源代码找出所有itemprop="hasPart"的div元素定位其中itemprop="associatedMedia" 的link元素

提取link元素的href值作为音频下载的URL地址

多线程下载这个音频文件保存到电脑D盘的文件夹Frog and Toad Audio Collection

注意每一步都要输出信息

要有反爬虫措施比如下载一个音频文件后暂停3秒

音频下载的Python源代码

import requests

from bs4 import BeautifulSoup

import os

import time

import threading

class Downloader(threading.Thread):

def __init__(self, url, path):

threading.Thread.__init__(self)

self.url = url

self.path = path

def run(self):

print(f'Starting download {self.path}')

r = requests.get(self.url, stream=True)

with open(self.path, 'wb') as f:

for chunk in r.iter_content(chunk_size=1024):

if chunk:

f.write(chunk)

print(f'Finished download {self.path}')

time.sleep(3) # pause for 3 seconds

def get_audio_links(url):

r = requests.get(url)

soup = BeautifulSoup(r.text, 'html.parser')

audio_links = []

for div in soup.find_all('div', itemprop='hasPart'):

link = div.find('link', itemprop='associatedMedia')

if link:

audio_links.append(link['href'])

return audio_links

def download_audios(url, directory):

if not os.path.exists(directory):

os.makedirs(directory)

audio_links = get_audio_links(url)

downloaders = []

for i, audio_link in enumerate(audio_links):

path = os.path.join(directory, f'audio{i}.mp3')

downloader = Downloader(audio_link, path)

downloader.start()

downloaders.append(downloader)

for downloader in downloaders:

downloader.join()

url = 'https://archive.org/details/107frogandtoadallyear_202004'

directory = 'D:\\Frog and Toad Audio Collection'

download_audios(url, directory)

程序运行很快就把网页中的音频下载完了。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: ChatGPT