最好的方法就是使用selenium这种库哦。简单介绍一下selenium,这本身是一种网站自动测试的库,所以可以模拟用户的所有交互行为,包括输入、点击、拖拉、滚动等等和用户完全相同的操作,所以也和真正打开网页一样,可以响应Javascript的行为,可以加载JS异步加载的网页。selenium最好配合PhantomJS使用,这样就没有界面,完全自动处理哦。
“只有客户发展了,才有我们的生存与发展!”这是创新互联建站的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对网站制作、做网站、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。
一、查看相应的js代码,用python获取原始数据之后,模仿js编写相应的python代码。
二、通过接口api获得数据,直接使用python获取接口数据并处理。
三。终极方法。使用 Selenium和PhantomJS执行网页js代码,然后再获取数据,这种方法100%可以获取数据,确定就是速度太慢。
js代码是需要js引擎运行的,Python只能通过HTTP请求获取到HTML、CSS、JS原始代码而已。
不知道有没有用Python编写的JS引擎,估计需求不大。
我一般用PhantomJS、CasperJS这些引擎来做浏览器抓取。
直接在其中写JS代码来做DOM操控、分析,以文件方式输出结果。
让Python去调用该程序,通过读文件方式获得内容。
selenium + phantomjs 模拟点击按钮,或者另写代码实现js函数openVideo();
顺着第一步再去解析新页面,看看能否找到视频的原始地址;
假设视频的原始地址第二步找到了,在通过视频的原始地址下载视频就OK啦。
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()