maven jar包
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.detro.ghostdriver/phantomjsdriver -->
<dependency>
<groupId>com.github.detro.ghostdriver</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.35.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.35.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-common</artifactId>
<version>2.0b1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>2.35.0</version>
</dependency>
方法一:
public class PhamJS {
public static void main(String[] args) throws InterruptedException {
//设置必要参数
DesiredCapabilities dcaps = new DesiredCapabilities();
//ssl证书支持
dcaps.setCapability("acceptSslCerts", true);
//截屏支持
dcaps.setCapability("takesScreenshot", true);
//css搜索支持
dcaps.setCapability("cssSelectorsEnabled", true);
//js支持
dcaps.setJavascriptEnabled(true);
dcaps.setCapability(
"phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); //很重要
//驱动支持(第二参数表明的是你的phantomjs引擎所在的路径)
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
"C:/Users/xiaosa/Downloads/phantomjs-2.1.1-windows/bin/phantomjs.exe");
// dcaps.opera().chrome();
//创建无界面浏览器对象
PhantomJSDriver driver = new PhantomJSDriver(dcaps);
//设置隐性等待(作用于全局)
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
//打开页面
driver.get("file:///D:/Gephi-0.8.2/toutiao_sign.html");
// driver.navigate().refresh();
// Thread.sleep(200);
JavascriptExecutor js = (JavascriptExecutor) driver;
//Map<String,String>map = (Map) js.executeScript("return ascp.getHoney()");
//System.out.println(map);
String sign = (String) js.executeScript("return TAC.sign('3242684112'+'0')");
// Thread.sleep(10);
//str = 'http://www.toutiao.com/api/pc/feed/?max_behot_time='+t+'&category=__all__&utm_source=toutiao&widen=1&tadrequire=true&as=479BB4B7254C150&cp=7E0AC8874BB0985&_signature='+TAC.sign(t);
String url="https://www.toutiao.com/c/user/article/?page_type=1&user_id=3242684112&max_behot_time=0&count=20&as=479BB4B7254C150&cp=7E0AC8874BB0985&_signature="+sign;
// driver.get(url);
//查找元素
System.out.println(sign);
System.out.println(url);
}
方法二:
public class Util {
public static String getAjaxCotnent(String url) throws IOException {
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("C:/Users/xiaosa/Downloads/phantomjs-2.1.1-windows/bin/phantomjs.exe C:/Users/xiaosa/Downloads/phantomjs-2.1.1-windows/bin/kk.js "+url);//这里我的codes.js是保存在c盘下面的phantomjs目录
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuffer sbf = new StringBuffer();
String tmp = "";
while((tmp = br.readLine())!=null){
sbf.append(tmp);
}
System.out.println(sbf.toString());
return sbf.toString();
}
public static void main(String[] args) throws IOException {
getAjaxCotnent("file:///D:/Gephi-0.8.2/toutiao_sign.html");
}
}
system = require('system')
address = system.args[1];//获得命令行第二个参数 接下来会用到
//console.log('Loading a web page');
var page = require('webpage').create();
page.settings.userAgent='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36';
var url = address;
//console.log(url);
page.open(url, function (status) {
//Page is loaded!
if (status !== 'success') {
console.log('Unable to post!');
} else {
//console.log(page.content);
//var title = page.evaluate(function() {
// return document.title;//示范下如何使用页面的jsapi去操作页面的 www.oicqzone.com
// });
//console.log(title);
console.log(page.content);
}
phantom.exit();
});