当前位置: 首页 > news >正文

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

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)

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

http://www.lryc.cn/news/179142.html

相关文章:

  • 力扣用队列实现栈
  • 一朵华为云,如何做好百模千态?
  • 华为云云耀云服务器L实例评测 | 实例使用教学之软件安装:华为云云耀云服务器环境下安装 Docker
  • 小程序编译器性能优化之路
  • FFmpeg 命令:从入门到精通 | ffmpeg 命令分类查询
  • Linux学习记录——삼십일 socket编程---TCP套接字
  • 【学习笔记】深度学习分布式系统
  • 【数据结构】树、二叉树的概念和二叉树的顺序结构及实现
  • rust学习-string
  • No167.精选前端面试题,享受每天的挑战和学习
  • 【python】pycharm导入anaconda环境
  • 【数据结构】逻辑结构与物理结构
  • HTML5高级部分
  • 浏览器输入 URL 并回车发生了什么
  • asp.net core mvc 文件上传,下载,预览
  • Axios有哪些常用的方法?
  • PL/SQL+cpolar公网访问内网Oracle数据库
  • stable diffusion和gpt4-free快速运行
  • 分享三个国内可用的免费GPT-AI网站
  • 使用SDKMAN在Linux系统上安装JDK
  • MySQL(8) 优化、MySQL8、常用命令
  • 前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(三)
  • 嵌入式汇编大合集
  • C#WPF框架MvvMLight应用实例
  • 【JVM】双亲委派模型
  • 多叉树+图实现简单业务流程
  • Word | 简单可操作的快捷公式编号、右对齐和引用方法
  • leetCode 123.买卖股票的最佳时机 III 动态规划 + 状态压缩
  • JavaScript计算两个时间相差多少个小时的封装函数
  • Qt 画自定义饼图统计的例子