如何selenium webdriver打开phantomjs
答案:2 悬赏:20
解决时间 2021-03-09 07:22
- 提问者网友:伴他一生,无悔
- 2021-03-08 20:27
如何selenium webdriver打开phantomjs
最佳答案
- 二级知识专家网友:没感情的陌生人
- 2021-03-08 20:59
//使用phantomjs进行dom、js、canvas、svg等渲染
private WebDriver renderingJS(){
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true); // enabled by default
caps.phantomjs().setBrowserName("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36");
System.out.println(caps.phantomjs().getBrowserName());
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,"F:\\phantomjs\\phantomjs.exe");
PhantomJSDriver webDriver = new PhantomJSDriver(caps);
webDriver.manage().timeouts().pageLoadTimeout(100, TimeUnit.SECONDS);
return webDriver;
}
public void executeSubBox(String url){
WebDriver webDriver = renderingJS();
webDriver.get(url);
try {
Thread.sleep(20*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String pageSource = webDriver.getPageSource();
Document document = Jsoup.parse(pageSource);
System.out.println(document);
webDriver.quit();
}
private WebDriver renderingJS(){
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true); // enabled by default
caps.phantomjs().setBrowserName("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36");
System.out.println(caps.phantomjs().getBrowserName());
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,"F:\\phantomjs\\phantomjs.exe");
PhantomJSDriver webDriver = new PhantomJSDriver(caps);
webDriver.manage().timeouts().pageLoadTimeout(100, TimeUnit.SECONDS);
return webDriver;
}
public void executeSubBox(String url){
WebDriver webDriver = renderingJS();
webDriver.get(url);
try {
Thread.sleep(20*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String pageSource = webDriver.getPageSource();
Document document = Jsoup.parse(pageSource);
System.out.println(document);
webDriver.quit();
}
全部回答
- 1楼网友:偏爱自由
- 2021-03-08 21:15
python的js解析,发现使用selenium+phantomjs的方案还是比较适合我的,以下是环境配置教程。
selenium及phantomjs介绍:
selenium是一个用于web应用程序测试的工具,selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括ie、mozilla firefox、chrome等。
phantom js是一个服务器端的 javascript api 的 webkit。其支持各种web标准: dom 处理, css 选择器, json, canvas, 和 svg。
安装环境:
windows 7 (64位)
python 2.7.8
配置过程:
1、使用pip安装selenium,如果没有安装pip的请参考我之前的博客文章。
命令: pip install -u selenium
2、安装phantomjs,到phantomjs的官方网站上下载,然后放到python的安装目录。
phantomjs下载
如果想使用chrome来实现解析的,请下载gg浏览器的相应驱动(同时需要安装chrome浏览器),如上图中的第一个程序,第二个程序就是phantomjs了。
如果想使用firefox来实现解析,则需要安装selenium提供的firefox插件,位于python安装目录lib\site-packages\selenium\webdriver\firefox\webdriver.xpi,请拖入到firefox浏览器中,然后重启浏览器即可。
selenium+phantomjs使用:
使用方法很简单,代码如下,如果成功打印出网站的标题,那么说明已经可以成功使用了。
from selenium import webdriver
driver = webdriver.phantomjs() #webdriver.firefox()driver.get('httpn/')
print driver.title
driver.quit()
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯