Как настроить HtmlUnit в проекте Eclipse? - PullRequest
8 голосов
/ 01 февраля 2012

Мой проект включает htmlunit jars и загружает содержимое некоторых страниц. Однако исполняемый файл jar (который включает libs, функцию экспорта eclipse) работает только на компьютере, на котором я его создал (на другом он не выполняется).

РЕДАКТИРОВАТЬ: он не выполняется, так как он не показывает «Запуск без браузера» MessageBox при запуске. Я использовал Eclipse Indigo: File> Export> Runnable jar> пакет необходимых библиотек в сгенерированный jar

Помогите, боги:

import java.io.*;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.RefreshHandler;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.*;
import javax.swing.filechooser.FileSystemView;

РЕДАКТИРОВАТЬ: дополнительный код, как требуется

public class MyTest
{
public static void main(String[] arguments) {
try{
JOptionPane.showMessageDialog(null, "Starting Headless Browser");
JFileChooser fr = new JFileChooser();
FileSystemView fw = fr.getFileSystemView();
String MyDocuments = fw.getDefaultDirectory().toString();

FileInputStream fstream = new FileInputStream(MyDocuments+"\\Links.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
String strLineID;

FileWriter xfstream = new FileWriter(MyDocuments+"\\NewPageContentList.txt");
BufferedWriter out = new BufferedWriter(xfstream);
while ((strLineID = br.readLine()) != null)   {
strLine = br.readLine();
out.write(strLineID);
out.write("\r\n");
out.write(DownloadPage(strLine));
out.write("\r\n");
}

out.close();
in.close();
JOptionPane.showMessageDialog(null, "HeadLess Browser Process Has Finished");
}

catch (Exception e){
JOptionPane.showMessageDialog(null, "error");
}
}

public static String DownloadPage(String str){
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
webClient.setThrowExceptionOnScriptError(false);

try{
final HtmlPage page = webClient.getPage(str);
final String pageAsText = str_replace("\n","",str_replace("\r","",page.asText()));

return pageAsText;
}

catch(IOException e){
JOptionPane.showMessageDialog(null, "error");
}

webClient.closeAllWindows();
return "";
}

public static String str_replace (String search, String replace, String subject)
{
StringBuffer  result = new StringBuffer (subject);
int  pos = 0;
while (true)
{
pos = result.indexOf (search, pos);
if (pos != -1)
result.replace (pos, pos + search.length (), replace);
else
break;
}

return result.toString ();
}
}

Ответы [ 3 ]

20 голосов
/ 03 февраля 2012

Как настроить HtmlUnit и как экспортировать его в исполняемый файл JAR в eclipse:

  1. Создать новый проект Java (все настройки по умолчанию)
  2. Щелкните правой кнопкой мышив проекте (в представлении проводника пакетов) и перейдите в New-> Folder и назовите его "lib"
  3. Скачать Библиотека HtmlUnit (файл htmlunit-2.9-bin.zip)
  4. Распакуйте его и скопируйте в нашу папку "lib" содержимое папки "/htmlunit-2.9/lib/" несжатого файла (вы можете перетаскивать с рабочего стола windows / linux все файлы в проводнике пакетов eclipseи выбрав для копирования файлов)
  5. Снова щелкните правой кнопкой мыши по проекту и перейдите в Build Path-> Configure Build Path ...
  6. На вкладке Libraries нажмите Add JARs ...
  7. Найдите нашу новую папку библиотеки (если вы не видите ее, закройте окно и снова перейдите в проводник пакетов, выберите папку проекта и нажмите F5 и продолжите с шага 5)
  8. Выберите все файлы в этой папке (17 файлов яn HtmlUnit 2.9) и закройте все окна
  9. Проверьте, все ли в порядке, создав очень простое приложение (я случайно написал в этом вопросе простой код, который может вам помочь)
  10. Все должно быть хорошо (если это не так, перепроверьте шаги), поэтому давайте экспортируем приложение, щелкнув правой кнопкой мыши по проекту и выбрав Экспорт ...
  11. Найдите файл Java / Runnable JARи нажмите Далее
  12. Выберите подходящую конфигурацию запуска, место назначения и выберите «Упаковать необходимые библиотеки в сгенерированный JAR», если вам нужен только один большой файл, содержащий ваше приложение и HtmlUnit, и нажмите «Готово»
  13. Открытьконсоль, где находится ваш JAR-файл, и выполните «java -jar yourJARfile.jar» и наслаждайтесь вашим приложением

Если это сработало для нового проекта, обновите свой собственный проект, чтобы отразить шаги, предпринятые в списке,Надеюсь, это поможет

1 голос
/ 13 ноября 2012

Новый проект Java с настройками по умолчанию. Загрузить последнюю версию библиотеки HTMUnit из Загрузить последнюю версию HTMLUnit jar Выбрать свойства нового проекта-> Путь сборки Java -> перейти на вкладку библиотеки и добавить извлеченные все файлы jars.Создайте новый класс с методом main в вашем новом проекте, запустите простое приложение, добавьте этот метод в класс и вызовите его в методе main.

`@Test
public void getElements() throws Exception {
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("http://some_url");
final HtmlDivision div = page.getHtmlElementById("some_div_id");
final HtmlAnchor anchor = page.getAnchorByName("anchor_name");

webClient.closeAllWindows();
}`
0 голосов
/ 06 марта 2014

Я попробовал вышеуказанные ответы, и они не работали для меня.

Они нужны, но у меня был динамический веб-проект, поэтому мне также нужно было добавить все мои файлы .jar в каталог lib в каталоге WEB-INF.

например. ProjectName \ WebContent \ WEB-INF \ lib (все файлы .jar, которые вы используете)

...