Как я могу использовать анализатор HTML с Apache Tika в Java для извлечения всех тегов HTML? - PullRequest
7 голосов
/ 25 марта 2011

Я загружаю библиотеки tika-core и tika-parser, но не могу найти примеры кодов для разбора документов HTML на строку. Я должен избавиться от всех тегов HTML источника веб-страницы. Что я могу сделать? Как мне написать код, используя Apache Tika?

Ответы [ 2 ]

20 голосов
/ 02 апреля 2011

Вы хотите текстовую версию HTML-файла? Если это так, все, что вам нужно, это что-то вроде:

        InputStream input = new FileInputStream("myfile.html");
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
        new HtmlParser().parse(input, handler, metadata, new ParseContext());
        String plainText = handler.toString();

BodyContentHandler, если он создан без аргументов конструктора или с ограничением символов, захватит текст (только) тела html и вернет его вам.

1 голос
/ 13 августа 2014

Вы также можете использовать Tika AutoDetectParser для анализа файлов любого типа, таких как HTML. Вот простой пример этого:

    try {
        InputStream input = new FileInputStream(new File(path));
        ContentHandler textHandler = new BodyContentHandler();
        Metadata metadata = new Metadata();
        AutoDetectParser parser = new AutoDetectParser();
        ParseContext context = new ParseContext();
        parser.parse(input, textHandler, metadata, context);
        System.out.println("Title: " + metadata.get(metadata.TITLE));
        System.out.println("Body: " + textHandler.toString());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (TikaException e) {
        e.printStackTrace();
    }
...