selenium+Python 刷视频视频播放量
selenium+Python 刷Bilibili视频播放量
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771
- 声明
仅供学习参考,切勿用于商业用途,使用所导致一切后果自行承担。
- 开发环境
Python3.8
Chrome+Chromedriver
selenium
- 问题
使用Selenium去自动播放B站视频在网上已有很多教程与代码,但是笔者在实际使用中发现会经常出现播放按钮无法找到的情况发生。
(ps:一个视频链接第一次播放没有问题,但是重复播放就会抛出Xpath找不到Button的Error)
- 原因
- 网络波动导致 js 未加载完成。
- 视频播放按钮的 Xpath 位置会发生改变。
- 相同 IP 短期内播放同一视频会隐藏视频控制 Bar。
以上均来自本人在实践操作中推断而出。
- 1
- 解决
- 增加程序 sleep 时间,等待 js 加载完成。
- 找出改变后的播放按钮的Xpath位置。
- 放弃寻找播放按钮,转为 click 整个视频。
(在网页中正常播放视频时除了点击播放按钮外,也可以点击视频本身来进行播放)
- 关键代码
'''
笔者暂时发现播放按钮有两个不同的Xpath,如果两次尝试后还
未寻到播放按钮,则去寻找视频播放窗口的Xpath。
'''
# 根据 xpath 获取播放按钮try:# 第一次尝试寻找播放按钮path = '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[10]/div[2]/div[2]/div[1]/div[1]/button[1]'browser.find_element_by_xpath(path)time.sleep(1)print('控件抓取成功1')except Exception:try:# 第二次尝试寻找播放按钮path = '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[9]/div[2]/div[2]/div[1]/div[1]/button[1]'browser.find_element_by_xpath(path)time.sleep(1)print('控件抓取成功2')except Exception:# 放弃寻找播放按钮,寻找整个视频播放窗口path = '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[9]/video'browser.find_element_by_xpath(path)time.sleep(1)print('控件抓取成功3')
- 完整代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import random# 基本配置# chrome_options=Options()
# chrome_options.add_argument('--headless')
# chrome_options.add_argument('--no-sandbox')
# chrome_options.add_argument('--no-gpu')
# chrome_options.add_argument('--disable-setuid-sandbox')
# chrome_options.add_argument('--single-process')
# chrome_options.add_argument('--window-size=1920,1080')USER_AGENT = ['Opera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.229 Version/11.62','Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.9.168 Version/11.52','Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0','Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20130331 Firefox/21.0','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0',
]# 参数 url 为B站视频的链接
def bil_views(url):chrome_options=Options()# chrome_options.add_argument('--headless')ua = random.choice(USER_AGENT)chrome_options.add_argument('--user-agent=%s' % ua)# 代码browser = webdriver.Chrome(options=chrome_options)# 访问网页browser.get(url)browser.save_screenshot("1.png")time.sleep(6)# 根据 id 获取播放按钮try:path = '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[10]/div[2]/div[2]/div[1]/div[1]/button[1]'browser.find_element_by_xpath(path)time.sleep(1)print('控件抓取成功1')except Exception:try:path = '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[9]/div[2]/div[2]/div[1]/div[1]/button[1]'browser.find_element_by_xpath(path)time.sleep(1)print('控件抓取成功2')except Exception:path = '//*[@id="bilibiliPlayer"]/div[1]/div[1]/div[9]/video'browser.find_element_by_xpath(path)time.sleep(1)print('控件抓取成功3')# 2倍速播放 js_2 = '''document.querySelector('video').playbackRate=2'''browser.execute_script(js_2) # 执行js的方法 # 播放browser.find_element_by_xpath(path).click() print('播放成功')# 睡眠,播放随机一段时间view_time = [i for i in range(11,60)]time.sleep(random.choice(view_time))# 截图,退出browser.save_screenshot("click1.png")browser.close() # 关闭当前页面browser.quit() # 关闭浏览器if __name__ == "__main__":# 播放100次for i in range(100):bil_views("https://www.bilibili.com/video/BV1bi4y1M7F3/")
- 结语
此为单任务基础版,旨在解决问题,在实际使用中效率低下。可以此为基础进行二次开发,引入协程、线程、进程中一个,将其改为多任务版,效率可大大提高,同时可以加入IP代理使你的数据更加真实可靠,大大降低风险。
selenium+Python 刷视频视频播放量相关推荐
- python刷红包_程序员小伙使用Python刷短视频自动领红包,好嗨哟
最近有几款比较火的刷短视频就可以领红包的App,只要简单的上下翻页浏览视频App就会自动计时累计红包,小编也快乐地参与到其中,由于浏览时间过长眼睛常常感觉到疲惫,手指也有点酸痛,根据多年的程序员思维, ...
- Web自动化测试 —— 测试环境搭建 (Selenium+Python)及视频操作
一.什么样项目适合做web自动化 1.软件需求不会频繁的变更. 2.项目周期比较长. 3.自动化的脚本能够重复利用. 介入点:第一个版本的核心功能确认以后,系统测试. 自动化的实施过程: 1.可行性分 ...
- python刷B站播放量
首先,我们要知道B站播放量计算方法:不同的IP只能算一次,如果点一下就关掉,会出现播放完成度很低的情况,反而不利. 所以我们要做的是:不停换IP地址打开视频播放页,最好能看完视频. 下面是实现方法: ...
- python刷b站视频浏览量_python + selenium 刷B站播放量的实例代码
B站UP主的主要收益来源(播放量获取的奖励.用户充电.广告等等) 首先做up主最直接的就是做视频,当你的粉丝过1000或者视频总播放超过10万时可以申请创造激励,申请创造激励之后,你的原创视频播放会给 ...
- python刷b站教程_python + selenium 刷B站播放量的实例代码
B站UP主的主要收益来源(播放量获取的奖励.用户充电.广告等等) 首先做up主最直接的就是做视频,当你的粉丝过1000或者视频总播放超过10万时可以申请创造激励,申请创造激励之后,你的原创视频播放会给 ...
- python + selenium 刷B站播放量
B站UP主的主要收益来源(播放量获取的奖励.用户充电.广告等等) 首先做up主最直接的就是做视频,当你的粉丝过1000或者视频总播放超过10万时可以申请创造激励,申请创造激励之后,你的原创视频播放会给 ...
- python自动刷手机视频_万能自动刷视频
这款软件是免费的自动刷视频神器,其实软件也叫做滑动刷屏工具,他可以在一段时间之后自动的刷屏,刷视频神器功能上面还是非常稳定的,让大家可以挂机刷视频获得积分. 万能自动刷视频特点 1.免费的刷视频工具, ...
- Python 【好看视频】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
导读: 本系列依次介绍目前主流的短视频平台(抖音.快手.B站.微视.小红书.好看视频.西瓜视频.视频号.搜狐视频等)的短视频自动发布,希望帮助大家更方便.高效的来进行自媒体的创作与管理. [本文介绍的 ...
- Python自动检测视频画面的旋转角度
好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...
最新文章
- Android 轮播Banner 实现 附代码
- 如何在大流量场景下云淡风轻地进行线上发布?
- LG Display为防控疫情采取措施 要求去过大邱市员工两周不要来公司
- 上怎么图片和字环绕_计算机上的0和1是怎么变成我们屏幕上看到的图片、视频和声音的?...
- HDU1412 {A} + {B}【排序+集合合并】
- sql数据库去重语法_浅谈sql数据库去重_MySQL
- 安装KeMotion3 03.16d时遇到的问题
- EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台
- mysql服务状态一直是启动解决方案
- excel如何快速查询银行卡号实名认证?
- c语言数码管显示小数点,8位数码管显示正整数和小数及解决鬼影问题
- 怎么判断两个多项式互素_多项式互素性质的补充讨论
- 红尘牵绊,江湖儿女惹情长
- 【校招篇】招聘季来临,金三银四你准备好了吗?
- docker 容器启动成功 外部访问不到原因
- 工控液晶屏开机白屏怎么回事,开机白屏解决方法?
- python生成桌面路径(winreg)
- python 二项式分布学习
- css 禅意花园 笔记
- 2020,那些惊艳我的产品迭代
热门文章
- ThingsBoard CE添加数据导出excel功能
- 大写汉字(大写汉字又称什么数码)
- React上拉加载和下拉刷新
- 无线射频专题《协议类,IEEE 802.11/802.11b/802.11a/802.11g/802.11n/802.11ac标准简介》
- winehq-stable-5.0 Download For Mac 在Mac上运行exe文件
- 四级英语词汇加词组(超全)
- 使用python+selenium清空淘宝购物车
- 珍惜现在才能活的快乐
- 2020移动apn接入点哪个快_最新联通上网卡APN的设置方法
- c语言经典100例c22 规律题