首页 > 编程语言 >零代码编程:用ChatGPT批量下载某个网页中的特定网页链接

零代码编程:用ChatGPT批量下载某个网页中的特定网页链接

时间:2023-11-30 16:03:09浏览次数:52  
标签:网页 title 编程 filename lexfridman path ChatGPT Transcript

以lexfridman的官方网站为例,https://lexfridman.com/podcast/,如何批量下载网页呢?

零代码编程:用ChatGPT批量下载某个网页中的特定网页链接_html

零代码编程:用ChatGPT批量下载某个网页中的特定网页链接_批量下载_02

查看网页源文件,播客transcript的链接是:

<a href="https://lexfridman.com/jared-kushner-transcript">Transcript</a>

文件标题在这里:<title>Transcript for Jared Kushner: Israel, Palestine, Hamas, Gaza, Iran, and the Middle East | Lex Fridman Podcast #399 - Lex Fridman</title>

所以,在ChatGPT中输入提示词如下:

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

在本地电脑D盘新建一个文件夹:lexfridman-podtext;

打开网页https://lexfridman.com/podcast/,解析网页源代码;

提取网页源代码中所有<a>标签的内容;

如果<a>标签的内容为“Transcript”,就提取<a>标签的href属性值,作为网页下载地址;

然后解析这个网页源代码,提取其<title>标签内容,作为网页的文件标题名;

下载这个网页,保存到文件夹lexfridman-podtext;

注意:<title>标签内容提取后,要将其中的“: ”、“ | ”等Windows系统中不允许作为文件名的特殊符号替换为符号”-”;

每一步都要输出相关信息;

ChatGPT生成源代码如下:

import os

import requests

from bs4 import BeautifulSoup

# 函数用于清理文件名中的非法字符

def clean_filename(filename):

return filename.replace(':', '-').replace('|', '-')

# 在D盘新建文件夹

folder_path = "D:\\lexfridman-podtext"

if not os.path.exists(folder_path):

os.makedirs(folder_path)

print(f"新建文件夹:{folder_path}")

# 打开并解析网页

source_url = "https://lexfridman.com/podcast/"

print(f"打开并解析网页:{source_url}")

response = requests.get(source_url)

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

# 提取所有<a>标签

a_tags = soup.find_all('a')

# 遍历<a>标签,找出内容为“Transcript”的

for a_tag in a_tags:

if a_tag.text == "Transcript":

# 提取<a>标签的href属性值

href = a_tag['href']

print(f"找到Transcript网页地址:{href}")

# 打开并解析Transcript网页

transcript_response = requests.get(href)

transcript_soup = BeautifulSoup(transcript_response.text, 'html.parser')

# 提取<title>标签内容

title_tag = transcript_soup.find('title')

if title_tag:

title = clean_filename(title_tag.text)

print(f"找到Transcript网页标题:{title}")

# 下载网页并保存到文件

filename = os.path.join(folder_path, title + ".html")

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

f.write(transcript_response.text)

print(f"网页已保存到:{filename}")

零代码编程:用ChatGPT批量下载某个网页中的特定网页链接_文件名_03

运行程序,全部网页下载保存到本地:

零代码编程:用ChatGPT批量下载某个网页中的特定网页链接_批量下载_04

标签:网页,title,编程,filename,lexfridman,path,ChatGPT,Transcript
From: https://blog.51cto.com/fancyar/8631935

相关文章

  • 编程设计模式中,工厂方法模式为什么叫工厂方法?(AI)
    来自你的消息:编程设计模式中,工厂方法模式为什么叫工厂方法?来自WeTabAI的消息:工厂方法模式是一种常用的面向对象设计模式,它被称为工厂方法是因为在这种模式中,我们将对象的创建过程封装到一个工厂类中,通过工厂类来创建对象。工厂方法模式的核心思想是定义一个用于创建对象的......
  • 在web-view加载的本地及远程HTML中调用uni的API及网页和vue页面通讯
    转载于在web-view加载的本地及远程HTML中调用uni的API及网页和vue页面通讯-DCloud问答uni-app的web-view组件,支持加载远程网页,在app环境下,还支持加载本地HTML页面。在web-view加载页面中,会涉及wx、plus、uni等对象的使用。在小程序下使用wx的api,需要引入微信提供的https......
  • 网页正常性监控脚本
    #!/bin/bash#Scriptname:httpmonitor.sh#Author:wanghongwei#Date:2023-11-30#Version:1.0#Description:Ascripttomonitorhttprequestandsendemailalerts#Description:使用cURL请求网页,如果连续三次失败,则发送告警信息#Usage:./httpmonitor.sh......
  • 学会XPath,轻松抓取网页数据
    一、定义XPath(XMLPathLanguage)是一种用于在XML文档中定位和选择节点的语言。XPath的选择功能非常强大,可以通过简单的路径选择语法,选取文档中的任意节点或节点集。学会XPath,可以轻松抓取网页数据,提高数据获取效率。二、XPath基础语法节点(Nodes):XML文档的基本构建块,可以是元......
  • (三十一)C#编程基础复习——继承
    特此声明:本教程内容可能有部分参照其他博主的观点或描述,但始终不影响我学习的热情,代码全部自己手工敲打,编辑此教程目的不是为了博取大家眼球,也不是为利益所驱,只是纯属为了方便自己学习,编辑的过程中也让自己加深了对C#各个基础的印象,同时也让自己编码过程更加流畅顺利,最后还能帮助......
  • 并发编程-基础篇
    三大特性原子性定义:即一个操作或者多个操作要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。Java中的原子性在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行。x=10;//语句1y=x;......
  • Java网络编程--Lesson
    一.InetAddress此类是获取网络地址实例的一个类,但是不能通过new来实例化这个类,因为它没有构造器,但是可以通过组合的方式来使用类中的方法拿取主机为localhost的网络地址实例InetAddressaddress=InetAddress.getByName("localhost"); 拿取百度网络地址实例//拿取主机为......
  • 学会XPath,轻松抓取网页数据
    一、定义XPath(XMLPathLanguage)是一种用于在XML文档中定位和选择节点的语言。它是一种用于导航和查询XML结构的强大工具,也可以用于HTML文档的搜索。它可以用来在XML或HTML文档中对元素和属性进行遍历,选择特定的节点。XPath的选择功能非常强大,可以通过简单的路径选择语法,选取文......
  • 实验5—C语言指针应用编程
    1、实验任务1task1_1源代码1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;1112......
  • windows socket编程
       参考:Windows下Winsock.dll与ws2_32.dll区别:在Windows中,Winsock.dll(WindowsSocketDLL)和ws2_32.dll(Winsock2DLL)是两个不同的DLL(动态链接库),但它们都与网络编程和套接字操作有关。Winsock.dll:LegacyWinsockLibrary:Winsock.dll是Windows原始的套接字库,用......