目录

前言

一、网页抓取已失效视频的相关信息

二、脚本运行环境的配置(PYTHON)

1.配置python环境(略)

2.引入库

三、使用脚本

1.参数count是收藏视频页面的总页数(第四行代码)

2.根据之前打开json文件的链接来修改需要爬取的url(第六行代码)

总结

附:将所有收藏视频的相关信息保存在本地文件的脚本




前言

在平静的日常生活中,笔者经常会发现自己收藏的视频突然被“河蟹”,变成已失效视频,但是却又忘记自己是什么时候收藏,视频的具体内容也完全回忆不到。自己喜欢的视频变成“已失效视频”这副冷冰冰的样子,总会让人感到好奇与一点遗憾。文章将讲述如何爬取自己收藏的已失效视频相关信息,希望可以帮助到大家。


一、网页抓取已失效视频的相关信息

在收藏内容中的已失效视频无法被点开,只能模糊地显示出该视频被收藏的日期,并不能为我们提供其他相关的信息,我们考虑使用Chrome的检查功能,找到数据的真实地址,从而找到已失效内容的具体信息

1.打开Chrome浏览器,进入个人主页的收藏夹,找到对应的已失效视频所在的那一页

2.右键窗口的任意位置,点击“检查”指令,进入下图所示页面

3.在最上方的一栏中找到network选项,然后刷新网页。此时,network会显示浏览器从网页服务器中所得到的所有文件,我们所需要的已失效视频的相关信息也在其中。

4.一般这些数据以json文件格式获取,因此我们可以单击network中的XHR选项,下拉找到开头为

list?media_id=xxxxxxx&pn...

格式的链接

5.双击打开链接,我们可以得到以json格式储存的数据,同时记住链接中对应的list?media_id后面的数字,它们对应着你的list?media_id,代码中将会用到。

6.看起来有些头疼,但是我们可以一行一行解析这些数据都代表着什么(这部分可以跳过)

上图其中一个未失效视频对应的数据,"tittle"是标题,"cover"是封面的图片url,"intro"是视频的简介,"upper"对应的是UP主的名字,头像等数据。

这张图中的数据对应的是一个已失效视频。可以发现,当视频已失效时,它的默认标题就会改为“已失效视频”,同时该视频原本的封面也不会被保存,但是视频简介与UP主的个人信息并不会被删除,通过这些我们便可以推断出该已失效视频的内容大致是什么。

二、脚本运行环境的配置(PYTHON)

1.配置python环境(略)

2.引入库

代码如下:

import re
from urllib import request

三、使用脚本

下面是读取已失效视频的代码(注:不能直接复制粘贴用)

import re
from urllib import requesti=1
count=25
for i in range(count):url = 'https://api.bilibili.com/x/v3/fav/resource/list?media_id=xxxxxxx&pn='+str(i)+'&ps=20&keyword=&order=mtime&type=0&tid=0&platform=web&jsonp=jsonp'req = request.Request(url)page = request.urlopen(req).read()page = page.decode('utf-8')string = pagemy_match = re.findall('"title":"(.*?)"',string)intro = re.findall('"intro":"(.*?)"',string)upper = re.findall('"upper":{(.*?)}', string)for eachone in range(len(my_match)):if my_match[eachone]=="已失效视频":print("简介: "+intro[eachone])name = re.findall('"name":"(.*?)"', upper[eachone])print("up: "+name[0])print("========")i+=1

使用脚本之前需要对该脚本进行修改

1.参数count是收藏视频页面的总页数(第四行代码)

可以看到笔者的收藏总共有27页,读者可以根据自己实际的情况进行修改

2.根据之前打开json文件的链接来修改需要爬取的url(第六行代码)

在这一行中,我们需要第一步中获取的json文件的链接来修改url

url = 'https://api.bilibili.com/x/v3/fav/resource/list?media_id=xxxxxx&pn='+str(i)+'&ps=20&keyword=&order=mtime&type=0&tid=0&platform=web&jsonp=jsonp'

list?media_id=xxxxxx

这一部分中的xxxxxx修改为之前获得的链接中自己对应的list?media_id即可

爬取结果如图


总结

在笔者使用脚本爬取已失效视频的内容时,发现大部分失效的视频都是搬运视频,由于没有版权而被下架。但是搬运视频时简介都会给出原视频的链接地址,所以想要知道失效的视频是什么,只需要点击视频原本地址观看即可。

也有一些视频失效是因为视频原作者将其删除,或是因为对该视频的内容不满意,或是因为一些其他种种的原因,但不管怎么说,这些视频也曾经给我们带来过快乐或者感动,也感谢各位B站的UP主们能够给我们带来这么多有质量的视频作品。

附:将所有收藏视频的相关信息保存在本地文件的脚本

代码如下:

import time
import re
from urllib import request
import jsoni=1
count=27
with open('D:\\bilibili默认收藏\\test.txt', "w+", encoding="utf-8") as f:for i in range(count):url = 'https://api.bilibili.com/x/v3/fav/resource/list?media_id=xxxxxxxx&pn='+str(i)+'&ps=20&keyword=&order=mtime&type=0&tid=0&platform=web&jsonp=jsonp'req = request.Request(url)page = request.urlopen(req).read()page = page.decode('utf-8')string = pagemy_match = re.findall('"title":"(.*?)"',string)intro = re.findall('"intro":"(.*?)"',string)upper = re.findall('"upper":{(.*?)}', string)for eachone in range(len(my_match)):print("名称: " + my_match[eachone])print("简介: "+intro[eachone])name = re.findall('"name":"(.*?)"', upper[eachone])print("up: "+name[0])print("========")f.write("名称: " + my_match[eachone])f.write("\n")f.write("简介: " + intro[eachone])f.write("\n")f.write("up: "+name[0])f.write("\n")i+=1
f.close()

使用方法同上,结果会保存在D:\\bilibili默认收藏\\test.txt文件中

【简易爬虫】找回B站“已失效视频”的相关信息相关推荐

  1. python抓取文献关键信息,python爬虫——使用selenium爬取知网文献相关信息

    python爬虫--使用selenium爬取知网文献相关信息 写在前面: 本文章限于交流讨论,请不要使用文章的代码去攻击别人的服务器 如侵权联系作者删除 文中的错误已经修改过来了,谢谢各位爬友指出错误 ...

  2. 爬虫案例 b站学习系列视频,番剧,单个视频 下载

    开发原因: 一些脚本可以获得b站视频的下载链接,但下载时没有文件名: 虽然有youtobe-dl,但下载速度较慢,所以想要去写一个自己的程序自己使用,目前脚本自己下载资料时一直使用,顺便解决一下问题. ...

  3. Python爬取哔哩哔哩视频的相关信息后续

    上一篇文章通过selenium工具自动搜索爬取哔哩哔哩上面的视频相关信息,今天我们接着上一篇文章,保存视频的图片到本地. 首先找到要爬取的网页数据所在的位置,如下图 并且,右键点击该网址,可以选择在新 ...

  4. Python爬虫分析——B站UP主视频数据分析

    背景 一个朋友的要求,对B站UP主的视频进行分析.至于要做什么,你懂的. 核心 使用B站提供的API,爬取数据,进行分析.具体B站提供的API就不说了,https://www.bilibili.com ...

  5. 有趣且重要的JS知识合集(15)前端上传视频后获取视频的相关信息

    通过视频文件上传后监听loadedmetadata事件来获取视频属性 getVideoInfo(file) {return new Promise(resolve => {const video ...

  6. 研究B站个人收藏中已失效的视频

    扩展阅读: b站收藏的已经失效视频怎么才能继续看到呢? 话说B站被删的视频还有机会恢复吗 [还有该网址内容存在未知风险这种操作的么 -_-||] 研究B站已失效的视频 目录 1. 前言说明 2. 获取 ...

  7. 爬虫项目——B站石原里美视频数据爬取

    爬虫项目--B站石原里美视频数据爬取 1. 爬虫原理 2. 数据爬取 2.1 库函数的引用 2.2 定义URL翻页函数 2.3 定义储存TXT文件函数 2.4 定义爬取函数 2.5 主函数 2.6 运 ...

  8. iphone屏蔽系统更新_手机资讯:iOS12 屏蔽系统更新的描述文件已失效怎么办

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道iOS12 屏蔽系统更新的描述文件已失效怎么办,那 ...

  9. python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式

    一.项目目标 爬取豆瓣TOP250电影的评分.评价人数.短评等信息,并在其保存在txt文件中,html解析方式基于正则表达式 二.确定页面内容 爬虫地址:https://movie.douban.co ...

最新文章

  1. ISP算法高水平分析(上)
  2. 你不需要jQuery(四)
  3. 微信小程序开发第三弹
  4. 【Android 逆向】类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )
  5. Python学习笔记(运算符)
  6. 8. String to Integer[M]字符串转整数
  7. Android ContextCompat 使用详解
  8. Kalman Filter—Data Fusion, Covarince Matrix, State Space Representation, Observation
  9. [19/04/29-星期一] GOF23_行为型模式(责任链模式、迭代器模式)
  10. 【SpringBoot_ANNOTATIONS】组件注册 04 @Scope 设置组件作用域
  11. structs常见错误
  12. 图片Exif信息解析(Java实现)
  13. 为什么大部分服务器都用Linux系统
  14. assoc在php中,在PHP中使用array_diff_assoc函数
  15. JS中for循环绑定事件
  16. POI实现EXCEL单元格合并及边框样式
  17. H3C、思科路由器简单配置
  18. js生日计算年龄_js 根据出生日期计算年龄
  19. 社群运营当下最流行的红包玩法
  20. sql server 整数转换成小数,并保留小数点后两位

热门文章

  1. 音视频开发(十九):运算符重载、继承、多态、模版
  2. Openvpn搭建并使用用户名密码登录
  3. 如何生成玫瑰?|数字艺术
  4. strings.Builder 源码阅读与分析
  5. 怎么对document.write写出来的内容调整对齐方式_【求职技巧】给少数人:硅谷BAT级别的简历这么写...
  6. Android开机向导setupwizard,设置系统语言,WiFi向导
  7. 华为国际专利申请数量全球第一,然而美国周刊评了IT行业影响最大的十人
  8. Linux多窗口终端使用、shell快捷键以及修改快捷键
  9. 谐波减速器的结构简图及传动比说明
  10. 手上长有透明液体的小疙瘩并脱皮怎么办?