我有以下...我不会说问题,而是情况。
我有一些带有标签和所有内容的 HTML。我想在 HTML 中搜索每个 URL。我现在通过检查它说“h”然后“t”然后“t”然后“p”的位置来做到这一点,但我认为这不是一个很好的解决方案
有什么好主意吗?
补充:我正在寻找某种伪代码,但为了以防万一,我特别为这个项目使用 Java
最佳答案
尝试使用 HTML 解析库然后搜索 <a>
HTML 文档中的标记。
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
Elements links = doc.select("a[href]"); // a with href
not all url are in tags, some are text and some are in links or other tags
您不应扫描 HTML 源代码来实现此目的。
您最终会得到不一定在页面“文本”中的链接元素,例如,您可能会在页面中得到 JS 脚本的“链接”。
最好的方法仍然是使用专为工作而设计的工具。
您应该获取 HTML 标签并覆盖其中最有可能包含“链接”的标签(例如:<h1>
、<p>
、<div>
等)。 HTML 解析器提供类似正则表达式的功能来过滤标签的内容,类似于“以 HTTP 开头”的逻辑。
[attr^=value]
,[attr$=value]
,[attr*=value]:
elements with attributes that start with, end with, or contain the value, e.g.select("[href*=/path/]")
参见:jSoup .
关于java - 如何使用 Java 在 HTML 中查找 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3368618/