前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零代码编程:用ChatGPT批量下载Lex Fridman播客字幕文本

零代码编程:用ChatGPT批量下载Lex Fridman播客字幕文本

作者头像
AIGC部落
发布2024-06-24 15:33:47
450
发布2024-06-24 15:33:47
举报
文章被收录于专栏:Dance with GenAIDance with GenAI

之前文章《零代码编程:用ChatGPT下载lexfridman的所有播客音频和文本》已经说明了Lex Fridman播客和字幕的下载方法。另外,这个网站https://karpathy.ai/lexicap/也有lexfridman播客的字幕文件。如何进行批量下载呢?

查看网页源代码,可以看到所有的字幕网页都在div标签中

相关源代码如下:

<div><a href="0001-large.html">1</a> Max Tegmark: Life 3.0 | Lex Fridman Podcast #1</div>

打开后的网页地址是:https://karpathy.ai/lexicap/0018-large.html

因此,在ChatGPT中输入提示词:

你是一个Python编程专家,要完成批量下载网页的任务,具体步骤如下:

打开网站https://karpathy.ai/lexicap/,解析源代码;

定位所有div标签;

在div标签中定位a标签,提取其href值,前面加上:https://karpathy.ai/lexicap/,作为网页的下载地址;

提取div标签内容,然后将其中的特殊符号“:\ / : * ? " < > |,”改成“-”,作为网页的标题名称;

下载网页,保存到D:\lexfridman-podcast

注意:每一步都要输出相关信息

如果网页下载中出现错误,就跳过,继续下载下一个;

源代码:

import os

import requests

from bs4 import BeautifulSoup

def sanitize_filename(s):

"""为文件名清洗特殊字符"""

s = s.replace(":", "-").replace("\\", "-").replace("/", "-")

s = s.replace(":", "-").replace("*", "-").replace("?", "-")

s = s.replace("\"", "-").replace("<", "-").replace(">", "-")

return s.replace("|", "-")

# 打开网站并解析源代码

url = 'https://karpathy.ai/lexicap/'

print(f"访问网站: {url}")

res = requests.get(url)

res.raise_for_status()

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

# 定位所有div标签

div_tags = soup.find_all('div')

print(f"找到 {len(div_tags)} 个div标签")

# 创建存储文件夹

save_dir = "D:\\lexfridman-podcast"

os.makedirs(save_dir, exist_ok=True)

# 在div标签中定位a标签,提取其href值,前面加上:https://karpathy.ai/lexicap/,作为网页的下载地址;

for div in div_tags:

a_tags = div.find_all('a')

for a in a_tags:

href = a.get('href')

if href:

download_url = 'https://karpathy.ai/lexicap/' + href

# 提取div标签内容,然后将其中的特殊符号“:\ / : * ? " < > |,”改成“-”,作为网页的标题名称;

filename = sanitize_filename(div.text) + '.html'

filename = os.path.join(save_dir, filename)

# 下载网页,保存到D:\\lexfridman-podcast

print(f"下载 {download_url} 到 {filename}")

try:

res = requests.get(download_url)

res.raise_for_status()

with open(filename, 'w', encoding='utf-8') as f:

f.write(res.text)

except Exception as e:

# 如果网页下载中出现错误,就跳过,继续下载下一个;

print(f"下载 {download_url} 时出现错误: {e}")

Continue

所有播客字幕文件下载完成:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dance with GenAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云微搭低代码
微搭低代码是一个高性能的低代码开发平台,用户可通过拖拽式开发,可视化配置构建 PC Web、H5 和小程序应用。 支持打通企业内部数据,轻松实现企业微信管理、工作流、消息推送、用户权限等能力,实现企业内部系统管理。 连接微信生态,和微信支付、腾讯会议,腾讯文档等腾讯 SaaS 产品深度打通,支持原生小程序,助力企业内外部运营协同和营销管理。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档