目录
一、网页抓取已失效视频的相关信息
在收藏内容中的已失效视频无法被点开,只能模糊地显示出该视频被收藏的日期,并不能为我们提供其他相关的信息,我们考虑使用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主的名字,头像等数据,我们在脚本中将视频的名称,简介和
二、脚本运行环境的配置(PYTHON)
1.配置python环境(略)
2.引入库
代码如下:
import re
from urllib import request
三、使用脚本
下面是代码(不能直接复制粘贴用)
import re
from urllib import request
i=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 = page
my_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即可
爬取结果如图