Python 抓取 B 站"卡塔尔 世界杯"的视频数据
最近什么最火?非 #卡塔尔世界杯 #莫属,今日凌晨两场点球大战,巴西败北(我巴西球迷,祝马儿加油吧),梅西晋级。那么编程怎么蹭蹭世界杯的热点呢?先用 python 爬一些世界杯视频数据看看吧。
分析
一、步骤
打开 B 站,在首页输入搜索关键字,点击查询跳转到搜索结果页面
读取页面信息,并抓取所需数据,然后点击下一页
循环上面过程直至最后一页。
所需数据: 标题、播放量、弹幕数、UP 主、发布时间
二、技术
Python + selenium + beautifulsoup + xlwt
使用命令 pip list 检查下面包是否已经安装,没有安装可以使用下面命令进行安装,我的是 Pip3
安装 chrome 驱动,先查看 chrome 浏览器版本,找到对应的版本号(最接近自己的),下载,然后解压到任意目录即可。
chrome 驱动下载地址:
https://registry.npmmirror.com/binary.html?path=chromedriver/
代码示例
1、打开 B 站
2、点击首页搜索并返回页码
3、页面加载并读取
4、bs 获取页面中数据
5、点击下一页
6、保存数据到 Excel
7、入口函数
结果
如图所示
分别搜索了"卡塔尔 世界杯" 和"梅西 阿根廷",生成了两个 Excel 文件,可以修改变量 key_words 检索 B 站任意数据结果
问题
主要是 XPath 取页面元素的问题,取不到页面元素,多检查是否漏(多)括号。
读不到页面元素,可能是网络加载慢导致的,一:可以 time.sleep(1) 1-2 秒一下试试;二:重新运行试试。
B 站有反爬机制,UI 有可能升级更新,程序报错找不到对应 html 元素,这个只能事先说明:2022-12-10 日的代码
完整代码
Github: https://github.com/BraveChi/bzscrpy.git
PS
WebDriveWait 类selenium 之WebDriveWait类的等待机制
版权声明: 本文为 InfoQ 作者【勇士】的原创文章。
原文链接:【http://xie.infoq.cn/article/bfe6c7f6205eff6ee31152c52】。文章转载请联系作者。
评论