进一步补充我之前的问题: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);
...
Parser parser = new Parser(htmlInput);
CssSelectorNodeFilter cssFilter = new CssSelectorNodeFilter("title");
NodeList nodes = parser.parse(cssFilter);
关于java - 在网络爬虫中解析 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487139/