所以我已经在CentOS服务器上安装了Java。我现在希望能够使用PHP运行HTMLUnit以获得完全渲染的网页,然后将结果返回给用户。
我在HTMLUnit上看到了"简单"的例子,但我对Java几乎一无所知,也不知道需要在哪里运行,甚至让测试用例工作(即获得谷歌的主页)。
public void getURL() throws Exception {
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("http://google.com"); // Pass in URL
// RETURN "page"
}
一旦测试工作,我需要能够"传递"所需的URL,然后"捕获"输出。
到目前为止,谷歌就像我在兜圈子。谁有一个链接到一个简单的例子,然后指针如何与PHP集成?
谢谢!
您可以使用PHP的shell_exec()调用启动HTMLunit控制台行并捕获输出。至于代码,这应该可以让您开始:
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.lang.String;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebClient;
public class myClient {
public static void main(String[] args) throws Exception {
// Create and initialize WebClient object
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://google.com"); // Pass in URL
Console.out.println(page.toString());
}
}
然后,从php:
$html = shell_exec('/bin/javac myClient.java');
我现在不能测试它,所以很抱歉任何代码错误。
使用java获取HTML
<>之前进口java.io.BufferedWriter;进口java.io.IOException;进口java.io.OutputStreamWriter;进口java.net.URL;进口并不知道;进口以;进口com.gargoylesoftware.htmlunit.Page;进口com.gargoylesoftware.htmlunit.WebClient;进口com.gargoylesoftware.htmlunit.html.HtmlPage;公共类GetHtml {public static void main(String[] args)抛出IOException {WebClient = new WebClient();webClient.getOptions () .setThrowExceptionOnScriptError(假);webClient.getOptions () .setThrowExceptionOnFailingStatusCode(假);webClient.getOptions () .setJavaScriptEnabled(假);HtmlPage = webClient.getPage("http://google.com");//传入URLString originalHtml = page.getWebResponse().getContentAsString();System.out.println (originalHtml);}}之前从php中获取结果
<>之前执行("java -jar ", $output);之前$output是您期望的数据