"Run" HTMLUnit with PHP


"Run" HTMLUnit with PHP

所以我已经在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是您期望的数据