Python中如何控制网页播放器的进度

比如说爱奇艺的进度条,让它快进 10 分钟。。。
Python中如何控制网页播放器的进度

5 回复

可以用 selenium 这个库,他里面有个 executeScript 函数,可以用来执行 js
http://selenium-python.readthedocs.io/api.html
然后 js 有函数可以用来控制<video>,play 和 pause 用来开始和暂停,currentTime 用来控制播放时间
https://msdn.microsoft.com/zh-cn/library/hh924823(v=vs.85).aspx


在Python里控制网页播放器进度,得看具体场景。如果你用的是像selenium这样的浏览器自动化工具,可以直接操作页面上的播放器元素。

比如,很多视频网站用HTML5的<video>标签,你可以通过JavaScript来设置当前播放时间。下面是个用selenium控制YouTube视频进度的例子:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get("https://www.youtube.com/watch?v=dQw4w9WgXcQ")

# 等页面加载
time.sleep(3)

# 找到video元素并跳转到指定时间(秒)
video = driver.find_element(By.TAG_NAME, "video")
driver.execute_script("arguments[0].currentTime = 60;", video)  # 跳到第60秒

# 等几秒看看效果
time.sleep(5)
driver.quit()

如果是用requests这类库直接处理网络请求,那就得分析视频流的请求方式,通过修改请求参数来控制进度,但这方法复杂得多,得具体网站具体分析。

简单说就是:用浏览器自动化最直接,分析视频流最灵活但麻烦。

javascript:document.getElementsByTagName(‘video’)[0].currentTime = document.getElementsByTagName(‘video’)[0].currentTime + 600;

直接在浏览器地址栏粘贴回车就能测试了

奇怪的是实测 b 站是有效果的,iqiyi 只是停了一小会然后继续从之前的分段继续播放了……

有了 selenium 那现在的问题就是 Javascript 如何控制网页播放器的进度。。。。

回到顶部