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这类库直接处理网络请求,那就得分析视频流的请求方式,通过修改请求参数来控制进度,但这方法复杂得多,得具体网站具体分析。
简单说就是:用浏览器自动化最直接,分析视频流最灵活但麻烦。
有了 selenium 那现在的问题就是 Javascript 如何控制网页播放器的进度。。。。


