我有以下内容…我不会说问题,而是情况。
我有一些带有标签和其他内容的HTML。我想搜索每个URL的HTML。我现在正在通过检查它说“ h”,“ t”,“ t”然后“ p”的位置来做到这一点,但是我认为这不是一个很好的解决方案
有什么好主意吗?
补充:我正在寻找某种伪代码,但是,以防万一,我正在为此项目使用Java
尝试使用HTML解析库,然后<a>在HTML文档中搜索标签。
<a>
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开头”的逻辑。
<h1>
<p>
<div>
[attr^=value],[attr$=value], [attr*=value]:用与启动属性的元素,结束与,或包含所述的值,例如 select("[href*=/path/]")
[attr^=value]
[attr$=value]
[attr*=value]:
select("[href*=/path/]")
请参阅:jSoup。