【Python项目】——爬虫爬取柯南的剧集数和集名(有错求指点)

项目目的:因为柯宝除了在CSDN写博客这一爱好外,还比较喜欢追番剪辑,尤其是柯南,想到了爬取这个!!参考Github大佬,原项目链接:

原作者Githubicon-default.png?t=N7T8https://github.com/LorentzForceWorkEnzyme/PythonSpiderDemo/blob/master/1.4%E5%90%8D%E4%BE%A6%E6%8E%A2%E6%9F%AF%E5%8D%97%E5%89%A7%E9%9B%86%E4%BF%A1%E6%81%AF%E8%A1%A8%E7%88%AC%E5%8F%96/readme.md项目功能:从一个网页(这里是《名侦探柯南》各集列表的百度百科页面)抓取数据,并将这些数据以特定的格式写入到一个文本文件中。

目标网页:

名柯剧集百度百科icon-default.png?t=N7T8https://baike.baidu.com/item/%E5%90%8D%E4%BE%A6%E6%8E%A2%E6%9F%AF%E5%8D%97%E5%90%84%E9%9B%86%E5%88%97%E8%A1%A8/49823770

 目标效果:

实现代码:

#codeing = utf-8
#@author: kebaozuishuai
import requests  # 导入requests库,用于发送HTTP请求  
from bs4 import BeautifulSoup  # 导入BeautifulSoup库,用于解析HTML和XML文档  
import os  # 导入os库,用于操作系统相关的操作(但在这段代码中未使用)  
import sys  # 导入sys库,用于与Python解释器交互(但在这段代码中未使用)  
import time  # 导入time库,用于时间相关的操作(但在这段代码中未使用)  
import random  # 导入random库,用于生成随机数(但在这段代码中未使用)  
import webbrowser  # 导入webbrowser库,用于控制Web浏览器(但在这段代码中未使用)  
import pandas  # 导入pandas库,用于数据处理和分析  
  
# 定义目标网页的URL  
url = 'https://baike.baidu.com/item/%E5%90%8D%E4%BE%A6%E6%8E%A2%E6%9F%AF%E5%8D%97%E5%90%84%E9%9B%86%E5%88%97%E8%A1%A8/49823770'  
  
# 定义请求头,用于模拟浏览器访问  
headers = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}  
  
# 发送GET请求到目标URL,并带上请求头  
req = requests.get(url, headers=headers)  
  
# 使用BeautifulSoup解析返回的HTML内容(但实际上这步后面没有用到,因为后面直接使用pandas来解析表格)  
bs = BeautifulSoup(req.content, 'html.parser')  
  
# 注释掉的代码是建议使用下载的静态网页进行测试,而不是直接访问网络  
# bs = BeautifulSoup('名侦探柯南各集列表_百度百科.html', 'html.parser')  
  
# 设置pandas的显示选项,以便在控制台中更好地显示DataFrame  
pandas.set_option('display.max_rows', None)  
pandas.set_option('display.unicode.ambiguous_as_wide', True)  
pandas.set_option('display.unicode.east_asian_width', True)  
pandas.set_option('max_colwidth', 100)  
pandas.set_option('expand_frame_repr', False)  
  
# 从URL读取表格数据,并尝试通过属性选择特定的表格(但这里的attrs可能不准确)  
df = pandas.read_html(url, attrs={"log-set-param" : "table_view"})  
  
# 删除最后一个DataFrame(假设它是参考资料)  
df.pop(len(df)-1)  
  
# 定义表头列表  
th = ['集数', '标题', '原创', '登场']  
  
# 标记变量,用于识别第二个DataFrame  
flag = 0  
  
# 遍历所有的DataFrame  
for each in df:  
    # 将NaN值替换为0  
    each.fillna(value=0, inplace=True)  
      
    # 如果是第二个DataFrame,进行特殊处理  
    flag += 1  
    if flag == 2:  
        # 将列名全部设置为空字符串  
        each.columns = [''] * len(each.columns)  
        # 删除前两行(假设第一行是年份,第二行是标题)  
        each.drop([0, 1], inplace=True)  
        continue  # 跳过后续处理,继续下一个循环  
      
    # 对于其他DataFrame,只删除第一行(年份)  
    each.drop(0, inplace=True)  
      
    # 只保留需要的列  
    each = each.loc[:, th]  
      
    # 将DataFrame转换为字符串并写入文件  
    with open('优化的表格.txt', 'a+', encoding='utf-8') as f:  
        f.write(str(each) + '\n')  
      
    # 在控制台中打印出处理后的DataFrame(用于测试)  
    print(str(each))

运行报错:找不到表格,请Python大佬指教

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

博客摘录「 AXI三种接口及DMA DDR XDMA介绍(应用于vivado中的ip调用)」2024年6月10日

关键要点: 1.AXI Stream经过协议转换可使用AXI_FULL(PS与PL间的接口,如GP、HP和ACP)。 2.传输数据类里就涉及一个握手协议,即在主从双方数据通信前,有一个握手的过程。基本内容:数据的传输源会…

Docker与Docker-Compose详解

1、Docker是什么? 在计算机中,虚拟化(英语: Virtualization) 是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍&…

【服务实现读写分离】

文章目录 什么是读写分离基于Spring实现实现读写分离项目中常用的数据源切换依赖包 什么是读写分离 服务读写分离(Service Read-Write Splitting)是一种常见的数据库架构设计模式,旨在提高系统的性能和可扩展性。通过将读操作和写操作分离到…

ChatTTS改良版 - 新增精选高品质音色,新增超长文本推理,新增api接口

这个版本是ChatTTS的一个分支,基于ChatTTS修改,由6drf21e大佬改良,大佬GitHub地址 GitHub - 6drf21e/ChatTTS_colab: 🚀 一键部署(含离线整合包)!基于 ChatTTS ,支持音色抽卡、长音频…

SpringBootWeb 篇-深入了解 Redis 五种类型命令与如何在 Java 中操作 Redis

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Redis 概述 1.1 Redis 下载与安装 2.0 Redis 数据类型 3.0 Redis 常见五种类型的命令 3.1 字符串操作命令 3.2 哈希操作命令 3.3 列表操作命令 3.4 集合操作命令 …

【面试干货】 B 树与 B+ 树的区别

【面试干货】 B 树与 B 树的区别 1、B 树2、 B 树3、 区别与优缺点比较4、 总结 💖The Begin💖点点关注,收藏不迷路💖 在数据库系统中,B 树和 B 树是常见的索引结构,它们在存储和组织数据方面有着不同的设计…

树莓派4B 零起点(三) 树莓派 VNC 远程桌面配置(1)

目录 一、启用树莓派4B的 VNC 服务 二、在PC的操作系统上安装VNC客户端 1、下载安装 RealVNC 2、下载安装 TigerVNC 三、登录VNC远程桌面 1、通过使用 ifconfig 查看树莓派的 IP 地址 2、启动 TigerVNC 客户端(Windows版本演示) 在前两章的基础下…

【C++修行之道】类和对象(六)再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元|匿名对象|拷贝时一些编译器优化

目录 一、再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1. 所有的成员,既可以在初始化列表初始化,也可以在函数体内初始化 2. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次) 3. 类中包含以下成员,必须放在初始化列表位置进行初始化&…

SpringBoot个人网盘系统-计算机毕业设计源码92922

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势或改善自身的缺点,互联网的发展文件管理带来了福音。个人网盘系统是以实际运用为开发背景,运用软件工程原理和…

分析示例 | Simufact焊接工艺仿真变形精确预测汽车结构

导语 焊接是汽车制造过程中一个关键环节,白车身、发动机、底盘和变速箱等都离不开焊接工艺的应用,主要涉及气保焊、电阻点焊、激光焊、电子束焊等多种焊接工艺。由于汽车车型众多、成形结构复杂、汽车制造质量、效率、成本等方面的综合要求。如何高效、…

WDF驱动开发-PNP和电源管理(三)

对于PNP设备来说,理解它们的启动和删除顺序,以及意外移除顺序非常重要,在早期,经常有拔插U盘导致windows重启的例子,这就是意外移除带来的问题。 功能或Filter驱动程序的启动顺序 下图显示了框架调用 WDF (KMDF 和 U…

中国蚁剑 安装教程 2024年5月

2024/5/11 中国蚁剑 安装教程 一、下载中国蚁剑的加载器和核心源码(两个都要用到) github官方下载地址:https://github.com/AntSwordProject/ 参考文档:antSword/README_CN.md at master AntSwordProject/antSword GitHub 核…

用咖啡来理解springboot3的自动配置机制

大家好,这里是教授.F 目录 前提知识: 场景引入: 1.Starter依赖: 2.默认配置: 3.自定义配置: 4.条件化配置: 5.自动装配: 具体过程: 扫包路径的配置: 配置…

招聘在家抄书员?小心是骗局!!!

在家抄书员的骗局是一种常见的网络诈骗手段,旨在利用人们想要在家轻松赚钱的心理。这种骗局通常会以招聘兼职抄写员的形式出现,声称只需在家中抄写书籍即可赚取可观的收入。然而,实际上这背后隐藏着诸多陷阱和虚假承诺。 首先,这些…

生成式人工智能 - 本地windows 11 + PyCharm运行stable diffusion流程简述

一、环境说明 硬件:本地电脑windows11、32.0 GB内存、2060的6G的卡。 软件:本地有一个python环境,主要是torch 2.2.2+cu118 二、准备工作 1、下载模型 https://huggingface.co/CompVishttps://huggingface.co/CompVis 进入上面的网址,我这里下载的是这个里面的 …

二分#背包#快排#LCS详解

二分#背包#快排#LCS详解 文章目录 二分#背包#快排#LCS详解1. 二分搜索2. 01背包问题3. 快速排序4. 最长公共子序列 1. 二分搜索 在处理大规模数据集时,查找操作的效率显得尤为重要。二分搜索是一种在有序数组中查找目标值的高效算法,其时间复杂度为O(lo…

超详细 | 使用Nexus搭建私服 (带代码演示)

为什么需要搭建私有仓库? 在企业开发的过程中,不是所有公司都能直接访问外网。在这种情况下,就需要在局域网内找一台有外网访问权限的服务器,搭建Nexus私服仓库,开发人员连接到这台私服上,通过搭建的Nexus…

Golang | Leetcode Golang题解之第142题环形链表II

题目: 题解: func detectCycle(head *ListNode) *ListNode {slow, fast : head, headfor fast ! nil {slow slow.Nextif fast.Next nil {return nil}fast fast.Next.Nextif fast slow {p : headfor p ! slow {p p.Nextslow slow.Next}return p}}r…

调研管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,教师类型管理,课程类型管理,公告类型管理 前台账户功能包括:系统首页,个人中心,论坛&#…

OPPO高级项目经理曹帆受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 OPPO互联网服务系统内容生态中心高级互联网项目经理曹帆先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“加、减、乘、除——激活项目团队效能”。大会将于6月29-30日在北京举办,敬请关注! 议…