selenium + phantomjs 模拟点击按钮,或者另写代码实现js函数openVideo();
从网站建设到定制行业解决方案,为提供网站设计制作、网站制作服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。
顺着第一步再去解析新页面,看看能否找到视频的原始地址;
假设视频的原始地址第二步找到了,在通过视频的原始地址下载视频就OK啦。
打开浏览器,以google chrome为例,输入你上面的网址。
然后按F12打开调试窗口,然后尝试勾选左边某一个选项,马上可以看到右边的调试窗口有东西输出。
找到第一个输出的行,点击header,可以看到每一个都是用的post方法。
所以只需要构造相应的header并post上去,就可以得到你想要的数据了。
尝试每一个request都点开看一下
就是你要构造的数据
FormData就是你要构造的数据
把数据构造好然后使用post函数发送给网站
这个得到的是一个网页格式的数据。
而这个发放返回的是json数据,然后编码成dict格式 提取出数据就可以了。
js代码是需要js引擎运行的,Python只能通过HTTP请求获取到HTML、CSS、JS原始代码而已。
不知道有没有用Python编写的JS引擎,估计需求不大。
我一般用PhantomJS、CasperJS这些引擎来做浏览器抓取。
直接在其中写JS代码来做DOM操控、分析,以文件方式输出结果。
让Python去调用该程序,通过读文件方式获得内容。
一、查看相应的js代码,用python获取原始数据之后,模仿js编写相应的python代码。
二、通过接口api获得数据,直接使用python获取接口数据并处理。
三。终极方法。使用 Selenium和PhantomJS执行网页js代码,然后再获取数据,这种方法100%可以获取数据,确定就是速度太慢。
最好的方法就是使用selenium这种库哦。简单介绍一下selenium,这本身是一种网站自动测试的库,所以可以模拟用户的所有交互行为,包括输入、点击、拖拉、滚动等等和用户完全相同的操作,所以也和真正打开网页一样,可以响应Javascript的行为,可以加载JS异步加载的网页。selenium最好配合PhantomJS使用,这样就没有界面,完全自动处理哦。
1、打开pycharm开发工具,点击File菜单,选择Settings...,进行第三方模块安装;输入selenium,点击Install Package。
2、接着在python项目的指定文件夹下,鼠标右键新建python文件,输入文件名并点击Python file。
3、打开新建的文件,依次导入selenium、webdriver和time。
4、调用webdriver模块中的Chrome(),使用get()获取对应网址的内容。
5、调用find_element_by_id()获取对应页面元素,然后调用按钮点击事件。
6、修改get()方法中的请求路径,然后保存代码并运行文件,查看运行结果。