【简易爬虫】将B站收藏视频的相关信息保存在本地文件中


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

在收藏内容中的已失效视频无法被点开,只能模糊地显示出该视频被收藏的日期,并不能为我们提供其他相关的信息,我们考虑使用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即可

爬取结果如图


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值