[Python] axaj异步加载数据爬虫,获取B站UP主所有视频信息保存到数据库——每周一个爬虫小教程系列
作者:CC下载站 日期:2020-08-18 00:00:00 浏览:58 分类:编程开发
这次要爬取的网页是B站里面的UP主的投稿视频页面,这次以教父的的账号来做个示范。
网址:https://space.bilibili.com/482165792/video
这篇文章的标题是ajax异步加载的数据爬取,这与平时的有什么区别呢?
通常的爬虫是将网页源码下载下来,然后利用xpath或者其他一些方式,将有用的数据提取出来,但是如果下载之后没有看到任何数据呢?
就像这样子:
这个时候就说明这个网站可能是ajax异步加载的数据了,而不是后端直接渲染出来的。
就个人而言,是比较喜欢ajax的,因为这样的话就可以直接找到数据的接口了,提取数据直接用json当字典就可以解析出来了。
回到浏览器,在视频页面F12,进入Network,选择XHR(XMLHttpRequest),这时候我们点击第二页。
这时候我们就可以看到增加了几条东西。
一条一条点开看下,只要看Preview就可以了,因为如果是ajax渲染的话,请求返回来的肯定会有视频数据。
第一个就是了。
将data展开。可以看见有两个list,tlist和vlist,大概意思应该是投稿类型的列表和视频列表了吧
于是我们再展开vlist看看,这里面不仅有标题,还有描述,av号和bv号以及播放量和视频长度
这两条数据对应的也就是教父的第一个和第二个视频
这样子教父的接口就找到了,然后打开Python开始写代码。
在这里可以看到这次请求的URL和请求方式等,我们将其全部转移到Python之中。
我们分析一下这个URL加了哪些参数
mid:482165792 #这个对比可以发现是教父的ID,也就是说只要修改这个值就可以获取其他UP的视频信息了
ps:30 #根据实验,发现这个就是每页获取多少条视频数据了
tid:0 #好像不知道
pn:1 #page number?就是翻也吧
keyword: #关键词?
order:pubdate #排序方式,发布时间
jsonp:jsonp #返回json格式
不得不说,B站对于爬虫新手还是很友好的,没加任何反爬机制,直接请求就可以获取到数据
然后加个循环,获取一下所有页数的视频。
然后为了更清晰的展示,我们将数据清洗一下。
#-*-coding:utf-8-*- """ ------------------------------------------------- @Author:Lan @Blog:www.lanol.cn @Date:2020/8/18 @Description:I'minchargeofmyCode ------------------------------------------------- """ importrequests foriinrange(1,12): url=f'https://api.bilibili.com/x/space/arc/search?mid=482165792&ps=30&tid=0&pn={i}&keyword=&order=pubdate&jsonp=jsonp' res=requests.get(url).json()['data']['list']['vlist'] forjinres: print('视频标题',j['title'],'AV号',j['aid'],'播放量',j['play'],'视频时长',j['length'])
然后我们建立一个表格,将其保存下来。
#-*-coding:utf-8-*- """ ------------------------------------------------- @Author:Lan @Blog:www.lanol.cn @Date:2020/8/18 @Description:I'minchargeofmyCode ------------------------------------------------- """ importrequests withopen('JiaoFuMvInfo.csv','a+',encoding='utf8')asf: f.write('视频标题,AV号,BV号,播放量,视频时长,视频简介,视频链接 ') foriinrange(1,12): url=f'https://api.bilibili.com/x/space/arc/search?mid=482165792&ps=30&tid=0&pn={i}&keyword=&order=pubdate&jsonp=jsonp' res=requests.get(url).json()['data']['list']['vlist'] forjinres: title=j['title'].replace(',',',') avId=j['aid'] bvId=j['bvid'] play=j['play'] length=j['length'] des=j['description'].replace(',',',').replace(' ','') url=f'https://www.bilibili.com/video/{j["bvid"]}' f.write(f"{title},{avId},{bvId},{play},{length},{des},{url} ") print('视频标题',j['title'],'AV号',j['aid'],'播放量',j['play'],'视频时长',j['length'])
还可以结合我博客以前的教程,将这些数据做一些词云图等,还可以去获取一些喜欢的UP主的视频
然后我顺便写了个获取所有B站用户的信息,为了和谐就只是单纯的循环了
猜你还喜欢
- 03-29 [编程相关] Winform窗体圆角以及描边完美解决方案
- 03-29 [前端问题] has been blocked by CORS policy跨域问题解决
- 03-29 [编程相关] GitHub Actions 入门教程
- 03-29 [编程探讨] CSS Grid 网格布局教程
- 10-12 [编程相关] python实现文件夹所有文件编码从GBK转为UTF8
- 10-11 [编程算法] opencv之霍夫变换:圆
- 10-11 [编程算法] OpenCV Camshift算法+目标跟踪源码
- 10-11 [Python] python 创建 Telnet 客户端
- 10-11 [编程相关] Python 基于 Yolov8 + CPU 实现物体检测
- 03-15 [脚本工具] 使用go语言开发自动化脚本 - 一键定场、抢购、预约、捡漏
- 01-08 [编程技术] 秒杀面试官系列 - Redis zset底层是怎么实现的
- 01-05 [编程技术] 《Redis设计与实现》pdf
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[资料教程] 事业单位必刷题库
[技术课程] 【易锦】WEB渗透Hacker技术特训营(直播课第14期)
[课程] 轻松汽车摄影-全能课,最全汽车视频拍摄技巧(32节课)
[资料教程] 辣条制作配方及教程
[音乐] 低音炮车载340首
[课程] 夜鹰10分钟救命课(完结)
[资料] 寻道网道医精品视频课程集合15部
[资料课程] 适合3-7岁学前幼小衔接 《22天搞定拼音》,认、读、拼、写
[课程] 衣之镖-- 《辅行诀五脏用药法要》研究 线上54讲课程视频
[课程] 12节在家也能练出性感蜜桃臀,让臀部变得圆、紧、翘
[资料] [大学期末救急课] 猴博士+高斯课堂+斐多课堂,全集视频合集
[云资源] 价值2万元的老男孩Python教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[云资源] 花了一千多元买的私人健身教程
[下载工具] Internet Download Manager 6.42.7 (IDM)
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[安卓软件] 酷我音乐APP_v10.7.6.4 去广告破解豪华VIP版
[即时通讯] 微信PC版WeChat 3.9.9.43 多开防撤回绿色版
[安卓软件] Solid Explorer文件管理器APP 2.8.38 破解版
[浏览器] Google Chrome v123.0.6312.59便携增强版
[云资源] 价值2万元的老男孩Python教程
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[云资源] 花了一千多元买的私人健身教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[动画] 北斗神拳(1984) [两季合集] [MKV]
[资料] 抗战阵亡将士资料+续编
[电视剧] 三体 (2024) 全8集 网飞版本 中文字幕 合集
[纪录片] 河西走廊【10集 国语 中文字幕 1080P 10.8G MP4】
[电影] 2024年喜剧片·热辣滚烫 [mp4]
[影视] 铁爪 WEB-DL版下载 2023 The Iron Claw 23.48G
- 最新评论
-
杂物房内的旧档资源不保证有效CC下载站 评论于:05-14 不能**123 评论于:05-14 我想看看mw2ddyy 评论于:04-26 好东西阿zfy123123 评论于:04-18 谢谢楼主xiaoqi 评论于:04-12 勿在线解压,勿手机解压,请在电脑上用最新款压缩软件解压!推荐360压缩或者好压CC下载站 评论于:04-10 无法解压啊,客服能不能给个解压教程ravengrey 评论于:04-10 谢谢支持!!CC下载站 评论于:03-26 很棒的资源,感谢分享云体风身 评论于:03-26 感谢分享,好东西云体风身 评论于:03-26
- 热门tag