«Запустить» HTMLUnit с PHP - PullRequest
       1

«Запустить» HTMLUnit с PHP

1 голос
/ 27 августа 2011

Итак, я установил Java на своем сервере CentOS. Теперь я хочу иметь возможность использовать PHP для запуска HTMLUnit, чтобы получить полностью визуализированную веб-страницу и затем вернуть результаты пользователю.

Я вижу «простой» пример на HTMLUnit, но почти ничего не знаю о Java и не знаю, куда это нужно или нужно запустить, чтобы заставить тестовый пример работать (т.е. получить домашнюю страницу Google).

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?

Спасибо!

Ответы [ 2 ]

1 голос
/ 20 октября 2016

Получить HTML, используя Java


    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.net.URL;
    import java.util.List;
    import java.lang.String;

    import com.gargoylesoftware.htmlunit.Page;
    import com.gargoylesoftware.htmlunit.WebClient;
    import com.gargoylesoftware.htmlunit.html.HtmlPage;

    public class GetHtml {

        public static void main(String[] args) throws IOException {
            WebClient webClient = new WebClient();
            webClient.getOptions().setThrowExceptionOnScriptError(false);
            webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
            webClient.getOptions().setJavaScriptEnabled(false);
            HtmlPage page = webClient.getPage("http://google.com"); // Pass in URL
            String originalHtml = page.getWebResponse().getContentAsString();
            System.out.println(originalHtml);
        }

    }

Получить результат от php


    exec("java -jar ", $output);

$ выходные данные - ваши ожидаемые данные.

1 голос
/ 27 августа 2011

Вы можете использовать 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');

Я не могу проверить это в настоящее время, так что извините за любые ошибки кода.

...