小编典典

如何使用Java在HTML中查找URL

java

我有以下内容…我不会说问题,而是情况。

我有一些带有标签和其他内容的HTML。我想搜索每个URL的HTML。我现在正在通过检查它说“ h”,“ t”,“ t”然后“
p”的位置来做到这一点,但是我认为这不是一个很好的解决方案

有什么好主意吗?


补充:我正在寻找某种伪代码,但是,以防万一,我正在为此项目使用Java


阅读 198

收藏
2020-11-30

共1个答案

小编典典

尝试使用HTML解析库,然后<a>在HTML文档中搜索标签。

Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
Elements links = doc.select("a[href]"); // a with href

并非所有的url都在标签中,有些是文本,有些在链接或其他标签中

您不应该扫描HTML源代码来实现此目的。

您将最终获得不一定位于页面“文本”中的链接元素,例如,您可能最终获得页面中JS脚本的“链接”。

最好的方法仍然是使用为该工作量身定制的工具。

你应该抓住HTML标签和覆盖最有可能的人有他们内部的“链接”(比如:<h1><p><div>等)。HTML解析器提供了
类似于正则表达式的功能,以过滤 标记的内容,类似于您的“以HTTP开头”的逻辑。

[attr^=value][attr$=value][attr*=value]:用与启动属性的元素,结束与,或包含所述的值,例如
select("[href*=/path/]")

请参阅:jSoup

2020-11-30