我正在使用 JSOUP 从 html 正文中过滤链接。
我使用这些选择器:
Elements links = doc.select("a[href]"); // Select all links
links.select("a[href*=#]").remove(); // remove links containing #
但是仍然有包含主题标签的链接。这怎么可能?
Elements 上的remove()
方法不会从 Elements 本身中删除匹配项,而是从关联的 Document 对象中删除匹配项。
例如,如果您有:
<html>
<body>
<a href="#someid"></a>
<a href="http://www.google.pt"></a>
</body>
</html>
之后links.select("a[href*=#]").remove();
你会:
<html>
<head></head>
<body>
<a href="http://www.google.pt"></a>
</body>
</html>
如果你想选择所有非标签链接,你可以这样做:
Elements links = doc.select("a[href~=[^#]*");