❤️心动挑战❤️python爬虫爬取B站封面图片

B站封面提取全攻略:从浏览器操作到接口批量下载高清原图 在内容创作与视频素材整理场景中,图片资源的清晰度往往决定最终呈现效果。B站视频封面本质是CDN上的静态图片文件,其页面展示地址会附带尺寸裁剪与压缩参数,导致直接保存得到的缩略图模糊不清。理解图片URL结构后,通过浏览器开发者工具定位`bfs/archive`字段或调用公开API接口,即可获取原始清晰封面。对于单张提取,可借助开发者工具、页面源码或控制台命令快速完成;面对批量归档需求,利用BV号拼接`api.bilibili.com/x/web-interface/view`接口并编写脚本,就能自动化抓取标题 阅读详情

🍑源生动力😍

对于文章,标题是其浓缩的精华;那么对于视频,其封面就可能是最亮眼的那一帧。B站,作为最近比较火热的短视频平台,其舞蹈区各种各样的舞蹈,尤其是宅舞,深受“宅男”的喜爱。

å¨è¿éæå¥å¾çæè¿°

 

于是乎,我就尝试使用爬虫获取B站的封面。

🍉网页获取
B站是有防爬措施的,我一开始根据网页进行分析,无果。

转念一想,这么火热的B站,想爬取的人肯定不止我一个,于是乎,我就开始搜索相关的文章和视频。

啪的一下,很快啊,我就找到一篇,根据B站AV号爬取封面图片的文章,我试了一下,咦,还真能用🤩(心中狂喜)
 

# 根据aid,获取封面
https://api.bilibili.com/x/web-interface/view?aid=(aid)

可转念一想,从去年开始,B站就开始用BV号了,哪来的AV号给我呀,文章里的AV号是哪来的呀?害,我转念又看了文章的日期,2019年,哦,那没事了,人家写那会,B站还没改呢😂

方法总比困难多,现在起码知道了怎么利用AV号,那我利用BV号找到AV号不就可以了吗?我真是个大聪明。

找寻一番,有个大佬分享了BV号的api,点击传送至大佬页面
我一看,哦,还是B站的大佬,你这不讲武德,居然教别人搞B站(不过我喜欢🤪 )
 

# 根据BV号获取cid
https://api.bilibili.com/x/player/pagelist?bvid=(bvid,要带上开头的BV!)
# 根据BV号和cid获取视频播放列表
https://api.bilibili.com/x/player/playurl?cid=(cid)&qn=(qn)&bvid=(bvid,要带上开头的BV!)
# 根据BV号和cid获取aid
https://api.bilibili.com/x/web-interface/view?cid=(cid)&bvid=(bvid,要带上开头的BV!)

总结上述内容的api,那么思路就有了,简直是有手就行呀,跟着大佬混,就是行!😏

先根据BV号找到cid,再根据BV号和cid获取aid,再根据aid获取封面。

而且爬取过程中的数据基本上都是json数据。其中:

cid的数据在json的['data'][0]['cid']中
aid的数据在json的['data']['aid']中
封面图片的数据在json的['data']['pic']中

更详细的过程,我写在了代码的注释中👇

🍇完整代码

 

# -*- coding: UTF-8 -*-
# @Time: 2021/8/17 20:12
# @Author: 远方的星
# @优快云: https://blog.youkuaiyun.com/qq_44921056

import os
import json
import requests
import chardet
from fake_useragent import UserAgent

# 随机产生请求头
ua = UserAgent(verify_ssl=False, path='D:/Pycharm/fake_useragent.json')


# 随机切换请求头
def random_ua():
    headers = {
        "accept-encoding": "gzip",  # gzip压缩编码  能提高传输文件速率
        "user-agent": ua.random
    }
    return headers


#  创建文件夹
def path_creat():
    _path = "D:/B站封面/"
    if not os.path.exists(_path):
        os.mkdir(_path)
    return _path


# 对爬取的页面内容进行json格式处理
def get_text(url):
    res = requests.get(url=url, headers=random_ua())
    res.encoding = chardet.detect(res.content)['encoding']  # 统一字符编码
    res = res.text
    data = json.loads(res)  # json格式化
    return data


# 根据bv号获取av号
def get_aid(bv):
    url_1 = 'https://api.bilibili.com/x/player/pagelist?bvid={}'.format(bv)

    response = get_text(url_1)
    cid = response['data'][0]['cid']  # 获取cid

    url_2 = 'https://api.bilibili.com/x/web-interface/view?cid={}&bvid={}'.format(cid, bv)
    response_2 = get_text(url_2)

    aid = response_2['data']['aid']  # 获取aid
    return aid


# 根据av号获取封面图片
def get_image(aid):
    url_3 = 'https://api.bilibili.com/x/web-interface/view?aid={}'.format(aid)
    response_3 = get_text(url_3)
    image_url = response_3['data']['pic']  # 获取图片的下载连接
    image = requests.get(url=image_url, headers=random_ua()).content  # 获取图片
    return image


# 下载封面
def download(image, file_name):
    with open(file_name, 'wb') as f:
        f.write(image)
        f.close()


def main():
    k = 'Y'
    while k == 'Y':  # 根据用户需要一直循环
        path = path_creat()  # 创建保存B站封面的文件夹
        bv = input("请输入视频的bv号:")
        image_name = input("请你给想要下载的封面取一个喜欢的名字叭:")
        aid = get_aid(bv)
        image = get_image(aid)
        file_name = path + '{}.jpg'.format(image_name)
        download(image, file_name)
        print("封面提取完毕^_^")
        k = input("按Y键继续提取,按Q退出:")


if __name__ == '__main__':
    main()

代码可直接复制运行,如果对你有帮助,记得点赞哦,也是对作者最大的鼓励,不足之处可以在评论区多多指正、交流。

🍋运行结果:美女姐姐,拿来把你🤣

å¨è¿éæå¥å¾çæè¿°

 å¨è¿éæå¥å¾çæè¿°

有兴趣的小伙伴可以自己尝试一下,我感觉效果还可以。更多福利下方领取哦 

 

从零搭建Synopsys EDA环境:Ubuntu系统下的完整安装与避坑指南 本文详细介绍了在Ubuntu系统下从零搭建Synopsys EDA环境的完整流程,包括系统配置、安装文件准备、核心工具安装、License配置及常见问题排查。特别针对数字IC设计场景,提供了VCS、Verdi、Design Compiler等EDA Tools的安装避坑指南和性能优化建议,帮助开发者高效搭建稳定的开发环境。 阅读详情

相关推荐

解决mamba_ssm库安装难题:两种高效方法详解

本文详细解析了mamba_ssm库安装失败的常见原因,并提供了两种高效的解决方案。针对其依赖C++/CUDA扩展编译的特性,文章手把手指导用户通过GitHub克隆源码编译安装,或寻找匹配的预编译Wheel文件直接安装,帮助开发者彻底解决环境配置难题,顺利部署Mamba模型。

weixin_29056865的博客 554

b站封面提取

http://www.galmoe.com/ 哔哩哔哩观察: https://www.biliob.com/#/

kestory的博客 2万+

从MRF8P9040N数据手册到ADS仿真:手把手教你搞定LDMOS功放设计(附完整模型下载)

本文详细解析了MRF8P9040N LDMOS功率放大器的数据手册关键参数,并提供了在ADS中进行仿真的完整指南。从模型导入、直流工作点验证到负载牵引与阻抗匹配设计,逐步指导工程师完成高效功放设计。文章还包含调试技巧和常见问题解决方案,帮助优化射频功放性能。

weixin_27015733的博客 490

下载 B 站封面的正确方式

B 友们经常用一些很好看的图片作为视频封面,但是大部分都不会指出图片来源,为此我们可以下载封面原图,用于保存或者搜索源出处。

PeterJXL的博客 5577

用Python+OpenCV搞定线激光相机标定:从棋盘格到3D点云的保姆级实战

本文详细介绍了使用Python和OpenCV进行线激光相机标定的全流程实战,从硬件准备到3D点云重建。涵盖相机内参标定、激光平面方程拟合、三维重建等关键技术,提供完整的代码实现和工程优化建议,帮助开发者实现毫米级精度的工业检测和三维测量系统。

weixin_29227425的博客 284

星网宇达Newton-M2设备安装及配置

主要介绍了星网宇达Newton-M2设备的配置过程

weixin_49353445的博客 2676

哔哩哔哩如何提取封面_BiuVideo | 一键提取解析B站1080P,连封面头像都能下,太牛了...

点击上方蓝色字关注我们~影视推荐的差不多了,今天就来一款B站资源神器了,这个一定有用了,对于现在越来越多的人在逛B站,免不了看到看好的资源想要下载下来,小盒子就经常看到有兴趣的UP主视频想要收藏下载下来,今天这款支持1080P直接解析哦。♥ hi~盒友们,小盒子所有资源均为免费分享,绝多部分来源于互联网,所有资源仅提供学习 交流 使用,严禁商用 如有侵权马上联系小盒子进行删除,谢谢合作。...

weixin_26905423的博客 7639

【图像去噪】论文复现:灵感源自MAE!进一步解决BSN的局限性,破坏真实噪声的空间相关性!AMSNet的Pytorch源码复现,跑通源码,原理详解!

论文题目:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising —— 自监督真实图像去噪的非对称掩码方案【图像去噪】论文精读:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising(AMSNet)AMSNet是基于PyTorch Lightning CLI深度学习框架编写的,比较适合复杂的大型任务,复用很方便,但是安装和环境配置问题太多。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

写作专用各种表情和符号,使你的文章更加美观有趣!❤️❤️❤️

这是我整理的写作中常用的表情和符号,希望可以帮助到你的文章,更加添光增彩!

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 5504

AUTOSAE软件配置-达芬奇( DaVinci Configurator)从新建工程开始

方法1,直接使用案例工程,一般SIP包会有一个创建好的案例工程,在这样的路径YOUR_SIP_DIR/Applications/SipAddon/StartApplication下面直接打开这个*.dpa文件即可看到已经预先做好的工程:但是,这个也不是全的,也不一定完全正确,至少MCAL是没有配置好的(MCAL是IC厂商提供的,并不归属SIP包的一部分)。这样就需要你自己去配置你想要的模块,修改里面的错误。

m0_49148264的博客 2944

【SpringBoot 3.x 第51节】带你玩转 GraalVM Native Image:启动快到飞起,内存省到心疼,你还不试试?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1304

B站bilibili视频封面在线提取神器

bilibili视频封面在线提取器,可以根据B站视频链接,BV号提取视频封面并进行下载,看到好看的封面不知道怎么提取怎么办?B站视频封面提取器帮你解决!

liky0410的博客 1527

超十万字解读Spring AI实战:开篇

大模型技术正以惊人的速度改变世界,2025年的人工智能已不再是科幻,而是现实。大模型如ChatGPT等,正在重塑各行各业,降低技术门槛,使专业能力普及化。SpringAI的出现为Java开发者提供了桥梁,使其能在企业级系统中稳定运行AI,同时保持工程化思维。尽管SpringAI在生态、学习成本和性能上存在不足,但其企业级基因和国产化适配能力使其成为Java开发者的重要工具。本系列文章旨在介绍SpringAI的功能与特性,鼓励更多Java开发者参与AI实践,共同探索AI时代的无限可能。

liaokailin的专栏 1577

博客中常用的Emoji表情整理,欢迎自取

💓💓😃😃😃(亲测有效)优快云,简书、知乎支持表情 💞💞😃😃😃整理了一下优快云,简书、知乎支持表情方便今后使用

⛄沉淀分享成长--长久的沉淀势必会收获到你想要的,那些旅途上的果实 45万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

手机b站封面提取网站_B站视频封面提取网站

就觉得这个网站挺好,想和你们分享一下。https://m.baidu.com/from=1001703a/bd_page_type=1/ssid=0/uid=0/pu=usm%403%2Csz%40320_1001%2Cta%40iphone_2_7.1_18_4.9/baiduid=6BE628E3DC94CADFD24B6A2677470886/w=0_10_/t=iphone/l=1/tc?...

weixin_42495504的博客 3万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

常用符号大全

❤❥웃유♋☮✌☏☢☠✔☑♚▲♪✈✞÷↑↓◆◇⊙■□△▽¿─│♥❣♂♀☿Ⓐ✍✉☣☤✘☒♛▼♫⌘☪≈←→◈◎☉★☆⊿※¡━┃♡ღツ☼☁❅♒✎©®™Σ✪✯☭➳卐√↖↗●◐Θ◤◥︻〖〗┄┆℃℉°✿ϟ☃☂✄¢€£∞✫★½✡×↙↘○◑⊕◣◢︼【】┅┇☽☾✚〓▂▃▄▅▆▇█▉▊▋▌▍▎▏↔↕☽☾の•▸◂▴▾┈┊①②③④⑤⑥⑦⑧⑨⑩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ㍿▓♨♛❖♓☪✙┉┋☹☺☻تヅツッシÜϡﭢ™℠℗©®♥❤❥❣❦❧♡۵웃유ღ♋♂♀☿☼☀☁☂☄☾☽❄☃☈⊙☉℃℉❅✺ϟ☇♤♧♡♢♠♣♥♦☜☞☝✍☚☛☟✌✽✾✿❁❃❋❀⚘☑✓✔√

javaThinker的专栏 6万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

哔哩哔哩如何提取封面_如何提取封面

https://m.baidu.com/from=1001703a/bd_page_type=1/ssid=0/uid=0/pu=usm%403%2Csz%40320_1001%2Cta%40iphone_2_7.1_18_4.9/baiduid=6BE628E3DC94CADFD24B6A2677470886/w=0_10_/t=iphone/l=1/tc?ref=www_iphone&...

weixin_39649614的博客 6968

一些常用的 Emoji 符号(可直接复制)

表情类 ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ☺️ ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ☹️ ???? ???? ?

weixin_42485712的博客 7万+

❤️用一万字给小白全面讲解python编程基础问答❤️《记得收藏不然看着看着就不见了》

❤️用一万字给小白全面讲解python编程基础问答❤️《????记得收藏不然看着看着就不见了????》目录 ????开讲啦!!!! ????1、简述解释型和编译型(翻译型)编程语言 ????2、Python解释器种类以及特点 ????3、请至少列举5个 PEP8 规范(越多越好) ????4、通过代码实现如下转换 ????5、请编写一个函数实现将IP地址转换成一个整数 ????6、python递归的最大层数 ????7、Python求结果 ????8、Python中ascii、unicode

苏州程序大白的博客 3万+

【优快云表情包大全】

csdn常用表情包

qq_63519366的博客 6745

HTML+CSS+JS实现 ❤️圣诞抓礼物小游戏❤️

???? 作者主页:Java李杨勇 ???? 简介:Java领域优质创作者????、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 ???? 欢迎点赞 ???? 收藏 ⭐留言 ???? 效果演示:文末获取源码 代码目录: 主要代码实现: CSS样式: body { background: rgb(8, 8, 58); margin: 0; } #wrapper { width: 500px;

java李阳勇的博客 7万+

markdown中写文章可以用到的 Emoji 大全(上千个表情任你选)

本博客记录markdown中写博客可以用到的 Emoji,大概千种以上。

数据知道的博客 8万+

markdown可用图标

markdown中可用的图标

东东强 2万+

不务正业篇:让你的博客更加可爱(1)——添加emoji表情

我们可以在博客中添加emoji表情,以使得我们的博客更加生动形象! 以下表情可以直接复制: ????????????????????????????????????????????????????????⚽⚡???????????? emoji表情(非图片可复制) ????????????????????????????????????????????????????????????????☺?????????????????????????????????????????????????????????

先说一下,就简单地写点儿氵文,不是博客,只是我的笔记本/工具书 3万+
上一篇: 女朋友让我深夜十二点催她睡觉,我有Python我就不干
下一篇: 手把手教你用python几行代码打造人工智能对话机器人,还说说话!
python2021_
博客等级 码龄6年 1730粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值