java - 如何使用 Java 在 HTML 中查找 URL

标签 java string search web-crawler

我有以下...我不会说问题,而是情况。

我有一些带有标签和所有内容的 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/

相关文章:

java - 忽略 isPalindrome() 方法中的字母 - Java

java - 为什么Spring明显合并了两个不同的bean?

java - 让算法重新开始?

algorithm - 与其他点相比,找到网格中最远的点

java - httpcomponents 没有按照文档工作

java - 想要从 DWR 请求打开 PDF 文件

javascript - 创建变量并动态命名它们javascript

c++ - 如何将 vector<string> 和 push_back() 格式化为其他 vector ?

mysql - SQL LIKE 是否迭代表的每一行

algorithm - 如何从中间搜索尝试