HTML Parser получить текст ссылки - PullRequest
1 голос
/ 13 сентября 2010

Я использую HTML Parser для получения ссылок с веб-страницы. Мне нужно сохранить URL-адрес, текст ссылки и URL-адрес родительской страницы, содержащей ссылку. Мне удалось получить URL ссылки, а также родительский URL.

Мне все еще нужно, чтобы получить текст ссылки.

<a href="url">link text</a> 

К сожалению, мне сложно разобраться, любая помощь будет принята с благодарностью.

public static List<LinkContainer> findUrls(String resource) {
    String[] tagNames = {"A", "AREA"};
    List<LinkContainer> urls = new ArrayList<LinkContainer>();
    Tag tag;
    String url;
    String sourceUrl;

    try {

        for (String tagName : tagNames) {

            Parser parser = new Parser(resource);
            NodeList nodes = parser.parse(new TagNameFilter(tagName));

            NodeIterator i = nodes.elements();

            while (i.hasMoreNodes()) {
                tag = (Tag) i.nextNode();
                url = tag.getAttribute("href");
                sourceUrl = tag.getPage().getUrl();

                if (RegexUtil.verifyUrl(url)) {
                    urls.add(new LinkContainer(url, null, sourceUrl));
                }
            }
        }

    } catch (ParserException pe) {
        pe.printStackTrace();
    }

    return urls;
}

Ответы [ 2 ]

0 голосов
/ 06 сентября 2011

Вам нужно будет проверить детей каждого A Tag.Если вы предполагаете, что у ваших тегов A есть только один дочерний элемент (сам текст), вы можете использовать метод getFirstChild () .Этот должен быть экземпляром TextNode , и вы можете вызвать getText () для получения текста ссылки.

0 голосов
/ 13 сентября 2010

Вы пробовали (тег (LinkTag)) .getLinkText ()?Лично я предпочитаю парсер html, который генерирует XML в соответствии с хорошо используемым стандартом, например, xerces или аналогичным.Это то, что вы получаете, используя, например, http://nekohtml.sourceforge.net/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...