千家信息网

怎么用Python爬取B站动漫番剧更新信息

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"怎么用Python爬取B站动漫番剧更新信息",在日常操作中,相信很多人在怎么用Python爬取B站动漫番剧更新信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2025年12月02日怎么用Python爬取B站动漫番剧更新信息

这篇文章主要介绍"怎么用Python爬取B站动漫番剧更新信息",在日常操作中,相信很多人在怎么用Python爬取B站动漫番剧更新信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用Python爬取B站动漫番剧更新信息"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目标:爬取b站番剧最近更新

输出格式:名字+播放量+简介
那么开始撸吧~

用到的类库:

requests:网络请求
pyquery:解析xml文档,像使用jquery一样简单哦~

1.分析页面布局,找到需要爬取的内容

目标url:

https://bangumi.bilibili.com/22/

设计video类:

import requestsfrom pyquery import PyQuery as pqclass Video(object):    def __init__(self,name,see,intro):        self.name=name        self.see=see        self.intro=intro    def __str__(self):        return "{}--{}--{}".format(self.name,self.see,self.intro)

分析完页面,设取爬去类:

class bilibili(object):    host="https://bangumi.bilibili.com"    def __init__(self):        self.dom=pq(requests.get('https://bangumi.bilibili.com/22/').text)    def get_recent(self):        '''最近更新'''        items=self.dom('#list_bangumi_new .c-list .new .c-item')        videos=[]        for i in items:            name=i.find('.r-i .t').attr('title')            link=self.host+i.find('.r-i .t').attr('href')            d=pq(requests.get(url=link).text)            see=d(".info-count .info-count-item").eq(1).find('em').text()            intro=d('.info-row').eq(3).find('.info-desc').text()            videos.append(Video(name=name,see=see,intro=intro))        return videos

哎呀,怎么回事,居然返回为空
这种情况下不要慌,如果代码没有错误,那么一般是由两种情况造成
没有选择到目标,页面是js动态加载的

我们先试下第一种情况,打开浏览器,f12,将选择字符串复制到console中运行下,我们这就是

$('#list_bangumi_new .c-list .new .c-item')

这是一个item的信息,里面有我们想要的名字信息,那接下来就是去详情页寻找播放量和简介了,但是详情页链接在哪那,刚刚那个接口里并没有,我们f12,审查一下元素。


这里的链接是/anime/6439,刚刚的接口里并没有这个信息啊,那这个信息应该就是拼接出来的了,关键就是6439这个数字了,去刚刚那个接口信息里寻找一下,果然找到了一个season_id字段符合,那么详情页链接就构造如下:

detail_url = "https://bangumi.bilibili.com/anime/{season_id}"

那么接下来就是去分析详情页,爬去我们想要播放量和简介信息了,构造爬去代码如下:

see = d(".info-count .info-count-item").eq(1).find('em').text()intro = d('.info-desc-wrp').find('.info-desc').text()

那么最终爬取类关键代码如下:

   class bilibili(object):    recent_url = "https://bangumi.bilibili.com/api/timeline_v2_global"  # 最近更新    detail_url = "https://bangumi.bilibili.com/anime/{season_id}"    def __init__(self):        self.dom=pq(requests.get('https://bangumi.bilibili.com/22/').text)    def get_recent(self):        '''最近更新'''        items=json.loads(requests.get(self.recent_url).text)['result']        videos=[]        for i in items:            name=i['title']            link=self.detail_url.format(season_id=i['season_id'])            d=pq(requests.get(url=link).text)            see = d(".info-count .info-count-item").eq(1).find('em').text()            intro = d('.info-desc-wrp').find('.info-desc').text()            videos.append(Video(name=name,see=see,intro=intro))        return videos

运行一下:


很ok,那接下来把它做成命令行~

2.制作命令行版

用到的类库:
argparse:解析命令行参数

主要代码如下:

if __name__ == '__main__':    parser=argparse.ArgumentParser()    parser.add_argument('--recent',help="get the recent info",action="store_true")    parser.add_argument('--num',help="The number of results returned,default show all",type=int,default=0)    parser.add_argument('-v','--version',help="show version",action="store_true")    args=parser.parse_args()    if args.version:        print("bilibili 1.0")    elif args.recent:       b = bilibili()       b.get_recent(args.num)

看下效果:

ok,大功告成,接下来大家就自由发挥添加更多的功能吧~:)

到此,关于"怎么用Python爬取B站动漫番剧更新信息"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

信息 更新 接下来 就是 动漫 代码 详情 学习 命令 情况 接口 更多 目标 简介 链接 页面 分析 关键 名字 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全协调联动机制文件 关于网络安全培训的简报 上海软件开发 了解志先科技 数据库系统的组成部分不包括哪个 网闸在数据库访问控制 小程序接收数据库数据 海珠区无源网络技术开发展示 专科软件开发工程师 深圳迈云互联网科技有限公司 株洲结算系统软件开发 税务机器人数据库设计 学生服务器租赁 电商网络安全论文选题 万睿网络技术有限公司好不好 1核2g服务器可以支持几个微信 学软件开发有什么课程 工程造价与软件开发 网络安全1200字大学论文 乌鲁木齐软件开发代理 网络道德与网络安全 我的世界国际服务器开荒 服务器sftp用户验证失败 魔兽现在哪些服务器可以免费转服 数据库上机浙江水利水电学院 好用的程序员服务器 重庆红黑树软件开发公司 手游神武苹果和安卓服务器哪个好 数据库更新重复数据 如何将数据库中的表复制出来 港币数据库
0