重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
selenium + phantomjs 模拟点击按钮,或者另写代码实现js函数openVideo();
成都创新互联专业为企业提供温县网站建设、温县做网站、温县网站设计、温县网站制作等企业网站建设、网页设计与制作、温县企业网站模板建站服务,十年温县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
顺着第一步再去解析新页面,看看能否找到视频的原始地址;
假设视频的原始地址第二步找到了,在通过视频的原始地址下载视频就OK啦。
如果只是执行js的话可以使用PyV8模块; 如果是要模拟浏览器的渲染和浏览器特有的window对象等支持那就要用到浏览器接口了,可以使用 Selenium 模块
调用js方法
execute_script(script, *args)
在当前窗口/框架 同步执行javaScript
脚本:JavaScript的执行。
*参数:适用任何JavaScript脚本。
使用:
driver.execute_script(‘document.title’)
使快播登陆用户名输入框标红显示:
#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("")
#给用户名的输入框标红
js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"
#调用js
driver.execute_script(js)
time.sleep(3)
driver.find_element_by_id("user_name").send_keys("username")
driver.find_element_by_id("user_pwd").send_keys("password")
driver.find_element_by_id("dl_an_submit").click()
time.sleep(3)
driver.quit()
js解释:
q=document.getElementById(\"user_name\")
元素q的id 为user_name
q.style.border=\"1px solid red\
元素q的样式,边框为1个像素红色
python取得javascript里面的值
复制代码代码如下:
import PyV8
with PyV8.JSContext() as env1:
env1.eval("""
var_i = 1;
var_f = 1.0;
var_s = "test";
var_b = true;
""")
vars = env1.locals
var_i = vars.var_i
print var_i
javascript取得python里面的值
复制代码代码如下:
import PyV8
with PyV8.JSContext() as env1:
env1.securityToken = "foo"
env1.locals.prop = 3
print int(env1.eval("prop"))
python和javascript里面的函数交互
python调用javascript里面的函数python调用func就可以使用js里面的function函数了
复制代码代码如下:
import PyV8
with PyV8.JSContext() as ctxt:
func = ctxt.eval("""
(function ()
{
function a()
{
return "abc";
}
return a();
})
""")
print func()
这样也可以
复制代码代码如下:
import PyV8
with PyV8.JSContext() as ctxt:
func = ctxt.eval("""
function a()
{
return "abc";
}
function c()
{
return "abc";
}
""")
a = ctxt.locals.a
print a()
js代码为什么要在python里运行?可以直接在浏览器的开发者工具里运行啊
当然如果你强行要运行的话,一定是有第三方库什么能运行的吧