python爬取b站搜索结果播放地址_如何利用Python快速爬取B站全站视频信息
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站全站视频信息相关推荐
- python输入一组数据、进行简单的统计_《利用Python进行数据分析》学习笔记——第二章(3)...
1880-2010年间全美婴儿姓名 用pandas.read_csv加载.txt文件 图2.1 用read_csv加载.txt文件 DataFrame.names1880中只有births这一列是in ...
- Python爬虫爬取ok资源网电影播放地址
#爬取ok资源网电影播放地址#www.okzy.co #入口一:http://okzy.co/index.php?m=vod-search&wd={关键字}&submit=search ...
- python爬取b站403_使用Python爬取B站全站视频信息
B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆.不过纸上得来终觉浅,绝知此事要躬行,我码故我在.最终爬取到数据总量为 760万条. 准备工作 首先打开 B 站,随便在首页找一个视频点击进去.常 ...
- python爬取b站数据_使用Python爬取B站全站视频信息
B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆.不过纸上得来终觉浅,绝知此事要躬行,我码故我在.最终爬取到数据总量为 760万条. 准备工作 首先打开 B 站,随便在首页找一个视频点击进去.常 ...
- 如何快速爬取B站全站视频信息
專 欄 ❈陈键冬,Python中文社区专栏作者,知乎专栏:尽瞎扯 GitHub: https://github.com/chenjiandongx ❈ B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜 ...
- python 怎么爬桌软件数据_如何利用Python爬取并分析红岭创投的数据?
第一步:爬取数据 通过 selenium + Firefox 的无头模式将需要的数据爬取出来,代码实现不在赘述,详细步骤可查看我的上一篇图文(如何利用Python爬取网易新闻), 由于 seleniu ...
- python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)
前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...
- python爬取pdf教程_#如何利用Python抓取PDF中的某些内容#python爬取pdf教程
如何利用Python抓取PDF中的某些内容 学生每天要学习,工作者要工作,家庭主妇每都要务.不论做什么,都有着相应的操作流同样就会有操作技巧.学生运用技巧学习才不会累,学得还会更快更多:工作者掌握技巧 ...
- python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...
原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...
最新文章
- tensorflow 制定 CPU 或GPU
- JSON在PHP中的基本应用
- Linux:环境变量
- jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组
- 由于在客户端检测到一个协议错误_TLS协议的分析
- java怎么判断mysql中是否存在我们查找的索引_10张图告诉你,MySQL 是如何查找数据的?...
- 地板之间出现缝隙如何处理?
- centos 安装 Vagrant
- 07-PKI证书体系
- 在word中选择所有匹配查找内容的文档内容
- java.lang.IllegalArgumentException: Merged region H2 must contain 2 or more cells
- EMV Level1(7816)学习(Smart Cart智能卡)-2
- COGS 2482. Franky的胡子【二分,高精度】
- 如何制作自己的网站?
- 离散:常用排列组合模型归纳,DFS代码实现
- UbuntuMate安装中文输入法
- 数字孪生相关概念阐述
- 洛谷:P1033 [NOIP2002 提高组] 自由落体 C++详解
- 腾讯研发“未成年防沉迷”系统,手游的社会责任之路已开启
- 中国最美的、令人震撼的10大名山
热门文章
- E2: A Framework for NFV Applications, SOSP' 15
- sql实现对多个条件分组排序方法和区别
- Sytem.String[] 动态数组的声明
- C语言-附加-给一个数求最大质数(完整代码)
- Tensorflow--图
- (2)存储过程中可以调用其他存储过程吗?_详解Oracle创建存储过程、创建函数、创建包及实例演示...
- 课工场新闻管理jsp修改项目_jspmvc实验室预约管理系统
- 深入解析 | Oracle Database 20c 十大新特性一览
- 参会指南丨3分钟带你玩转2019数据技术嘉年华!
- Oracle数据库不同损坏级别的恢复详解