首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >不写代码如何爬取B站

不写代码如何爬取B站

作者头像
overme
发布2022-01-17 08:03:53
发布2022-01-17 08:03:53
52500
代码可运行
举报
文章被收录于专栏:数据开发笔记数据开发笔记
运行总次数:0
代码可运行

Python

背景

之前在商拆营的时候,分享了一个微博一个B站的excle数据,大家都比较好奇 怎么快速的抓取这些数据,我这边做个如何写尽量少的代码快速抓取这些数据,图文教程。

B站

我们先访问需要访问的用户主页

因为我这边想抓取全部的视频列表,所以我这边直接选取更多,获取全部视频的列表

我们打开F12找到https://api.bilibili.com/x/space/arc/search的请求

可以看到里面的数据预览 包含了一整页的视频

我们右键复制这个请求的cUrl

进入转换网站https://curlconverter.com/

粘贴进左边的框 选择自己适合的语言 我这边选择Python

我们把右边框的代码复制进入Python编辑器

在底部新增

代码语言:javascript
代码运行次数:0
运行
复制
print(response.json())

可以看到数据已经被获取到了

接下来就是根据返回的json结构来解析数据并保存了

代码语言:javascript
代码运行次数:0
运行
复制
data = response.json().get('data').get('list').get('vlist')
for i in data:
    row = {}
    row['标题'] = i.get('title')
    row['评论'] = i.get('comment')
    row['阅读量'] = i.get('play')
    row['发布时间'] = time.strftime("%Y-%m-%d", time.localtime(i.get('created')))
    print(row)

想要的数据已经被爬取并打印

我们这里只查询了一页的数据 所以我这边尝试把每页数量改大 看是否可以一次就获取所有数据

Key: 'SearchArg.Ps' Error:Field validation for 'Ps' failed on the 'lte' tag

返回报错可以看到后台对每页数量做了限制,经我测试B站这个接口的最大数量是每页50

我们可以在返回的数据或者界面上看到总视频是446个 也就是说我们9次请求就可以获取完

代码语言:javascript
代码运行次数:0
运行
复制
def get_bilipage(page):
    params = (
        ('mid', '99157282'),
        ('ps', '50'),
        ('tid', '0'),
        ('pn', str(page)),
        ('keyword', ''),
        ('order', 'pubdate'),
        ('jsonp', 'jsonp'),
    )
    response = requests.get('https://api.bilibili.com/x/space/arc/search', headers=headers, params=params)
    data = response.json().get('data').get('list').get('vlist')
    reslut=[]
    for i in data:
        row = {}
        row['标题'] = i.get('title')
        row['评论'] = i.get('comment')
        row['阅读量'] = i.get('play')
        row['发布时间'] = time.strftime("%Y-%m-%d", time.localtime(i.get('created')))
        print(row)
        reslut.append(row)
    return reslut

res=[]
for i in range(1,10):
    res+=get_bilipage(i)
write_excle(res)

在路径下看到excle

由此B站爬取模板就出来了 。

考虑到部分同学没有Python环境 这边做了一个小工具 下载

可以直接 使用mid就是用户主页上的数字

本站文章除注明转载/出处外,均为本站原创,转载前请务必署名,转载请标明出处 最后编辑时间为: 2021/12/13 18:38:47

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • B站
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档