AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情

电视猫上面有《庆余年》分集剧情,如何批量爬取下来呢?

先找到每集的链接地址,都在这个class="epipage clear"的div标签里面的li标签下面的a标签里面:

<a href="/drama/Yy0wHDA=/episode">1</a>

这个链接是相对地址,前面加上https://www.tvmao.com,才是完整的URL地址;

每集的标题在p标签里面:

<p class="epi_t">

第7集:范闲赴诗会作绝句惊艳京城

</p>

在kimi中输入提示词:

你是一个Python编程专家,要完成以下任务的Python脚本的编写:

打开网页:https://www.tvmao.com/drama/Yy0wHDA=/episode

在源代码中定位class="epipage clear"的div标签;

提取div标签里面所有a标签的href值,前面加上”https://www.tvmao.com”,构成网页下载URL;

解析URL,定位class="epi_t"的p标签,提取其文本内容,作为txt文档文件名;提取class="clear epi_c"的article标签里面的文本内容,保存为txt文档到D盘下的qyn文件夹;

注意:

每下载一个网页,随机暂停1-10秒;

网页文件名要进行处理,去除不符合window系统文件命名规范的特殊字符,处理文件名时要确保文件名中不包含任何特殊字符或不可见字符,可以通过使用strip()方法来去除字符串两端的空白字符,包括换行符和空格;

每一步都要输出信息到屏幕

要有应对反爬虫的措施,设置请求头;

生成的源代码如下:

import requests

from bs4 import BeautifulSoup

import random

import time

import os

# 目标网页URL

url = 'https://www.tvmao.com/drama/Yy0wHDA=/episode'

# 设置请求头,模拟浏览器访问

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'

}

# 发送HTTP请求

response = requests.get(url, headers=headers)

response.raise_for_status() # 如果请求失败,将抛出异常

# 解析HTML

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

# 定位class="epipage clear"的div标签

div_epipage = soup.find('div', class_='epipage clear')

# 提取所有a标签的href值,并构成完整的网页下载URL

episode_links = []

for a_tag in div_epipage.find_all('a', href=True):

episode_url = 'https://www.tvmao.com' + a_tag['href']

episode_links.append(episode_url)

# 创建文件夹

d盘_qyn文件夹路径 = 'D:\\qyn'

if not os.path.exists(d盘_qyn文件夹路径):

os.makedirs(d盘_qyn文件夹路径)

# 下载并保存每个剧集的文本内容

for episode_url in episode_links:

print(f'正在下载:{episode_url}')

# 发送HTTP请求

episode_response = requests.get(episode_url, headers=headers)

episode_response.raise_for_status()

# 解析HTML

episode_soup = BeautifulSoup(episode_response.text, 'html.parser')

# 解析文件名

epi_t = episode_soup.find('p', class_='epi_t')

file_name = epi_t.text.strip().replace(':', '').replace('/', '-').replace('\\', '-').replace('|', '-') # 处理文件名

# 解析文本内容

epi_c = episode_soup.find('article', class_='clear epi_c')

text_content = epi_c.get_text(strip=True)

# 保存到txt文档

file_path = os.path.join(d盘_qyn文件夹路径, file_name + '.txt')

with open(file_path, 'w', encoding='utf-8') as file:

file.write(text_content)

print(f'已保存:{file_path}')

# 随机暂停1-10秒

time.sleep(random.randint(1, 10))

print('所有剧集文本已下载完毕。')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速盾:负载均衡能防ddos攻击吗?

负载均衡是一种分布式系统的设计思想&#xff0c;通过将流量分散到多个服务器上&#xff0c;以提高系统的稳定性和可扩展性。然而&#xff0c;负载均衡本身并不能完全防止DDoS攻击&#xff0c;但可以在一定程度上减轻其影响。 DDoS&#xff08;分布式拒绝服务&#xff09;攻击…

【C语言】8.C语言操作符详解(1)

文章目录 1.操作符的分类2.⼆进制和进制转换3.原码、反码、补码4.移位操作符4.1 左移操作符4.2 右移操作符 5.位操作符&#xff1a;&、|、^、~5.1 &&#xff1a;按位与5.2 |&#xff1a;按位或5.3 ^&#xff1a;按位异或5.4 ~&#xff1a;按位取反5.5 例题例题1例题2例…

短视频矩阵系统4年独立开发正规代发布接口源码搭建部署开发

1. 短视频矩阵源码技术开发要求及实现流程&#xff1a; 短视频矩阵源码开发要求具备视频录制、编辑、剪辑、分享等基本功能&#xff0c;支持实时滤镜、特效、音乐等个性化编辑&#xff0c;能够实现高效的视频渲染和处理。开发流程主要包括需求分析、技术选型、设计架构、编码实…

Web前端开发技术、详细文章、(例子)html 列表、有序列表、无序列表、列表嵌套

目录 列表概述 列表类型与标记符号 无序列表 语法&#xff1a; 语法说明&#xff1a; 无序列表标记的 type 属性及其说明 代码解释 有序列表 基本语法 属性说明 1、列表 o1标记的属性 2、列表项li标记的属性 有序列表 o1标记的属性、值 代码解释 列表嵌套 基本…

如何将Qt pro工程文件 改成CMakeLists.txt

Qt pro工程管理文件&#xff0c;本人认为是很好用的&#xff0c;语法简洁易懂&#xff0c;但是只能在QtCreator中使用&#xff0c;想用使用其它IDE比如Clion或者vs&#xff0c;CMakeLists是种通用的选择&#xff0c;另外QtCreator的调试功能跟粑粑一样。 一&#xff0c;思路 …

FreeBSD/Linux下的系统资源监视器排队队

bpytop bpytop 是一个基于 Python 的资源监视器&#xff0c;可以在 FreeBSD 上使用。它提供了对文件写入磁盘、网络、CPU 和内存占用的监视功能。 pkg install bpytop 或者用ports安装 cd /usr/ports/sysutils/bpytop/ make install clean bashtop bashtop 也是一个基于 P…

化简资源分配图判断是否发生死锁

目录 1.资源分配图的概念 2.判断是否发生死锁 1.资源分配图的概念 资源分配图表示进程和资源之间的请求关系&#xff0c;例如下图&#xff1a; P代表进程&#xff0c;R代表资源&#xff0c;R方框中 有几个圆球就表示有几个这种资源&#xff0c;在图中&#xff0c;R1指向P1&a…

C++ RPC ORM 高速解析

支持所有常用编程语 https://capnproto.org/GitHub - capnproto/capnproto: Capn Proto serialization/RPC system - core tools and C library https://capnproto.org/capnproto-c-win32-1.0.2.zip 常用命令&#xff1a; capnp help capnp compile -oc myschema.capn…

java文件上传时给pdf、word、excel、ppt、图片添加水印

前言 在开发的过程中&#xff0c;因为文件的特殊性&#xff0c;需要给pdf、word、excel、ppt、图片添加水印。添加水印可以在文件上传时添加&#xff0c;也可以在文件下载时添加。因为业务的某些原因&#xff0c;文件需要在浏览器预览&#xff0c;如果用户将文件另存为则无法添…

算法与数据结构汇总

基本 数组 字符串 排序 矩阵 模拟 枚举 字符串匹配 桶排序 计数排序 基数排序 回文&#xff1a;中心扩展 马拉车 树上启发式合并 括号 数学表达式 字符串&#xff1a;前后缀分解。 贡献法 分组&#xff1a; 【状态机dp 状态压缩 分组】1994. 好子集的数目 【动态规划】【前缀…

Excel中sum的跨表求和

#实际工作中&#xff0c;一个xlsx文件中会包含多个Excel表格&#xff0c;一般会有“总-分”的关系&#xff0c;如何把分表里的数字汇总到总表里呢&#xff1f; 一般有上图所示的两种表达方式。 可以使用通配符 *&#xff1a;代表任意个数、任意字符&#xff1b; &#xff1f;&…

51单片机的最小系统详解

51单片机的最小系统详解 1. 引言 在嵌入式系统中,51单片机被广泛应用于各种小型控制器和嵌入式开发板中。相信很多人都接触过51单片机,但是对于51单片机的最小系统却了解得不够深入。本文将从振荡电路、电源模块、复位电路、LED指示灯和调试接口五个方面详细介绍51单片机的…

quartz定时任务

Quartz 数据结构 quartz采用完全二叉树&#xff1a;除了最后一层每一层节点都是满的&#xff0c;而且最后一层靠左排列。 二叉树节点个数规则&#xff1a;每层从左开始&#xff0c;第一层只有一个&#xff0c;就是2的0次幂&#xff0c;第二层两个就是2的1次幂&#xff0c;第三…

DOS学习-目录与文件应用操作经典案例-attrib

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统中的attrib命令是一个用于显示或更改文件&#…

设计模式——职责链(责任链)模式

目录 职责链模式 小俱求实习 结构图 实例 职责链模式优点 职责链模式缺点 使用场景 1.springmvc流程 ​2.mybatis的执行流程 3.spring的过滤器和拦截器 职责链模式 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成…

github设置项目分类

https://www.php.cn/faq/541957.html https://docs.github.com/zh/repositories/working-with-files/managing-files/creating-new-files

什么是回表,如何解决回表问题

下面表中:主键id是聚簇索引&#xff0c;name是辅助索引。 执行这样一条SQL: select name from A where name"s;name字段是有索引&#xff0c;所以MYSQL在通过name进行査询的时候&#xff0c;是需要扫描两颗Btree树的。 第一遍:先通过二级索引定位主键值1。第二遍:根据主键…

免费发布web APP的四个途径(Python和R)

免费发布数据分析类&#x1f310;web APP的几个途径&#x1f4f1; 数据分析类web APP目前用来部署生信工具&#xff0c;统计工具和预测模型等&#xff0c;便利快捷&#xff0c;深受大家喜爱。而一个免费的APP部署途径&#xff0c;对于开发和测试APP都是必要的。根据笔者的经验…

word-形状绘制、smartart、visio

一、人员架构图绘制 小技巧&#xff1a; 1、ctrlshift水平复制 2、点击图形&#xff0c;右键设置为默认形状 3、插入-形状-右键-锁定绘图模式&#xff0c;按esc退出状态 4、插入-形状-新建绘图画布&#xff0c;代替组合问题 画布中存在锚点&#xff0c;便于直线连接 二、s…

网络安全相关面试题(hw)

网络安全面试题 报错注入有哪些函数 updatexml注入 载荷注入 insert注入 updata注入 delete注入 extractvalue&#xff08;&#xff09;注入 注入防御方法 涵数过滤 直接下载相关防范注入文件&#xff0c;通过incloud包含放在网站配置文件里面 PDO预处理,从PHP 5.1开始&…