java - 在网络爬虫中解析 HTML

标签 java html html-parsing web-crawler

进一步补充我之前的问题:Extending a basic web crawler to filter status codes and HTML ,我正在尝试使用以下方法从 HTML 标记中提取信息,在本例中为“标题”:

public static void parsePage() throws IOException, BadLocationException 
{
    HTMLEditorKit kit = new HTMLEditorKit();
    HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
    doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE);
    Reader HTMLReader = new InputStreamReader(testURL.openConnection()
            .getInputStream());
    kit.read(HTMLReader, doc, 0);

    // Create an iterator for all HTML tags.
    ElementIterator it = new ElementIterator(doc);
    Element elem;

    while ((elem = it.next()) != null) 
    {
        if (elem.getName().equals("title")) 
        {
            System.out.println("found title tag");
        }
    }
}

就告诉我它已找到标签而言,这是有效的。 我正在苦苦挣扎的是如何提取它们之后/内部包含的信息。

我在网站上发现了这个问题:Help with Java Swing HTML parsing ,但是它声明它只适用于格式正确的 HTML。 我希望有另一种方法。

感谢任何指点。

最佳答案

尝试使用 Jodd

Jerry jerry = jerry().enableHtmlMode().parse(html);
...

HtmlParser

Parser parser = new Parser(htmlInput);
CssSelectorNodeFilter cssFilter = new CssSelectorNodeFilter("title");
NodeList nodes = parser.parse(cssFilter);

关于java - 在网络爬虫中解析 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487139/

相关文章:

html - 如何强制将 2 个嵌套的 div 一起带到新行

html - 带有按钮的可扩展目录

python - Html 解析与正则表达式

python - 如何使用 Urllib2 更有效地抓取?

java - 有没有办法从 ArrayList 中挑选出特定元素?

java - 将字符串数组列表的数组列表作为记录插入 MySQL 数据库

java - 从java代码中打开.exe

java - 静态方法不在主类中运行它

javascript - Angularjs 登录应用程序?

python - BeautifulSoup 提取不带标签的条纹文本