B 站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆。不过 纸上得来终觉浅,绝知此事要躬行,我码故我在。最终爬取到数据总量为 760万 条。

准备工作

首先打开 B 站,随便在首页找一个视频点击进去。常规操作,打开开发者工具。这次是目标是通过爬取 B 站提供的 api 来获取视频信息,不去解析网页,解析网页的速度太慢了而且容易被封 ip。

勾选 JS 选项,F5 刷新

找到了 api 的地址

动手写码

好了,到这里代码就可以码起来了,通过 request 不断的迭代获取数据,为了让爬虫更高效,可以利用多线程。

核心代码result = []

req = requests.get(url, headers=headers, timeout=6).json()

time.sleep(0.6) # 延迟,避免太快 ip 被封

try:

data = req['data']

video = Video(

data['aid'], # 视频编号

data['view'], # 播放量

data['danmaku'], # 弹幕数

data['reply'], # 评论数

data['favorite'], # 收藏数

data['coin'], # 硬币数

data['share'] # 分享数

)

with lock:

result.append(video)

except:

pass

迭代爬取for i in range(10000)]

with futures.ThreadPoolExecutor(32) as executor: # 多线程

executor.map(run, urls)

不要一次性爬取全部链接,我是利用两个进程,这样就是多进程+多线程了。一个进程一次大概爬取 50w 条数据。100w 条数据的话大概一个多小时吧。分多次爬取,分别将数据保存为不同的文件名,最后再汇总。

运行的效果大概是这样的,数字是已经已经爬取了多少条链接,其实完全可以在一天或者两天内就把全站信息爬完的。

至于爬取后要怎么处理就看自己爱好了,我是先保存为 csv 文件,然后再汇总插入到数据库。

汇总的 csv 文件

数据库表

由于这些内容是我在几个月前爬取的,所以数据其实有些滞后了。

数据总量

查询播放量前十的视频

查询回复量前十的视频

python爬取b站搜索结果播放地址_如何利用Python快速爬取B站全站视频信息相关推荐

  1. python输入一组数据、进行简单的统计_《利用Python进行数据分析》学习笔记——第二章(3)...

    1880-2010年间全美婴儿姓名 用pandas.read_csv加载.txt文件 图2.1 用read_csv加载.txt文件 DataFrame.names1880中只有births这一列是in ...

  2. Python爬虫爬取ok资源网电影播放地址

    #爬取ok资源网电影播放地址#www.okzy.co #入口一:http://okzy.co/index.php?m=vod-search&wd={关键字}&submit=search ...

  3. python爬取b站403_使用Python爬取B站全站视频信息

    B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆.不过纸上得来终觉浅,绝知此事要躬行,我码故我在.最终爬取到数据总量为 760万条. 准备工作 首先打开 B 站,随便在首页找一个视频点击进去.常 ...

  4. python爬取b站数据_使用Python爬取B站全站视频信息

    B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆.不过纸上得来终觉浅,绝知此事要躬行,我码故我在.最终爬取到数据总量为 760万条. 准备工作 首先打开 B 站,随便在首页找一个视频点击进去.常 ...

  5. 如何快速爬取B站全站视频信息

    專 欄 ❈陈键冬,Python中文社区专栏作者,知乎专栏:尽瞎扯 GitHub: https://github.com/chenjiandongx ❈ B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜 ...

  6. python 怎么爬桌软件数据_如何利用Python爬取并分析红岭创投的数据?

    第一步:爬取数据 通过 selenium + Firefox 的无头模式将需要的数据爬取出来,代码实现不在赘述,详细步骤可查看我的上一篇图文(如何利用Python爬取网易新闻), 由于 seleniu ...

  7. python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  8. python爬取pdf教程_#如何利用Python抓取PDF中的某些内容#python爬取pdf教程

    如何利用Python抓取PDF中的某些内容 学生每天要学习,工作者要工作,家庭主妇每都要务.不论做什么,都有着相应的操作流同样就会有操作技巧.学生运用技巧学习才不会累,学得还会更快更多:工作者掌握技巧 ...

  9. python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...

    原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...

最新文章

  1. tensorflow 制定 CPU 或GPU
  2. JSON在PHP中的基本应用
  3. Linux:环境变量
  4. jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组
  5. 由于在客户端检测到一个协议错误_TLS协议的分析
  6. java怎么判断mysql中是否存在我们查找的索引_10张图告诉你,MySQL 是如何查找数据的?...
  7. 地板之间出现缝隙如何处理?
  8. centos 安装 Vagrant
  9. 07-PKI证书体系
  10. 在word中选择所有匹配查找内容的文档内容
  11. java.lang.IllegalArgumentException: Merged region H2 must contain 2 or more cells
  12. EMV Level1(7816)学习(Smart Cart智能卡)-2
  13. COGS 2482. Franky的胡子【二分,高精度】
  14. 如何制作自己的网站?
  15. 离散:常用排列组合模型归纳,DFS代码实现
  16. UbuntuMate安装中文输入法
  17. 数字孪生相关概念阐述
  18. 洛谷:P1033 [NOIP2002 提高组] 自由落体 C++详解
  19. 腾讯研发“未成年防沉迷”系统,手游的社会责任之路已开启
  20. 中国最美的、令人震撼的10大名山

热门文章

  1. E2: A Framework for NFV Applications, SOSP' 15
  2. sql实现对多个条件分组排序方法和区别
  3. Sytem.String[] 动态数组的声明
  4. C语言-附加-给一个数求最大质数(完整代码)
  5. Tensorflow--图
  6. (2)存储过程中可以调用其他存储过程吗?_详解Oracle创建存储过程、创建函数、创建包及实例演示...
  7. 课工场新闻管理jsp修改项目_jspmvc实验室预约管理系统
  8. 深入解析 | Oracle Database 20c 十大新特性一览
  9. 参会指南丨3分钟带你玩转2019数据技术嘉年华!
  10. Oracle数据库不同损坏级别的恢复详解