如何使用 Java 查找 HTML 中的 URL

2023-12-04

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

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

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

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

您最终会得到不一定在页面“文本”中的链接元素,即,例如,您可能会在页面中得到 JS 脚本的“链接”。

最好的方法仍然是使用专为该工作而设计的工具。

您应该抓取 HTML 标签并覆盖最有可能在其中包含“链接”的标签(例如:<h1>, <p>, <div>ETC) 。 HTML 解析器提供类似正则表达式的过滤功能通过标签的内容,类似于“以 HTTP 开头”的逻辑。

[attr^=value], [attr$=value], [attr*=value]:元素与 开头、结尾的属性, 或包含值,例如select("[href*=/path/]")

See: jSoup.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Java 查找 HTML 中的 URL 的相关文章

  • 创建 RESTful WebService 并通过 Glassfish 4 提供服务

    我在 JEE6 中看到了很多关于 RESTful WebServices 的问题 所以我想与您分享这个示例解决方案 它展示了实现 RESTful Webservice 是多么容易 首先创建一个新的动态 Web 项目并将 Glassfish
  • Java无法读取字体

    好的 我在使用自定义字体时遇到问题 基本上我得到了从互联网上下载的自定义字体并在我的程序中使用它 当我在 Eclipse 我使用的编辑器 中运行该程序时 一切正常 没有问题 但是 每当我将它从 eclipse 导出到 jar 时 或者尝试从
  • 在记录活动中使用 readConfiguration 方法

    为了在小型 Java 桌面应用程序中使用日志记录 我试图深入了解一些方法的操作 我使用一个非常愚蠢的小Java程序来测试它们 特别是 在测试 LogManager readConfiguration 方法的行为时 我发现了一些奇怪的事情 在
  • 从 ArrayList Java 中的 HashMap 键中检索所有值

    美好的一天 这让我现在有点困惑 大脑冻结 并且似乎遗漏了一些东西 有一个 ArrayList 我用 HashMap 填充它 现在我放入 HashMap 和 arraylist Map put DATE value1 Map put VALU
  • Hibernate统计打印HQL:null

    我是使用休眠的新手 我打开了统计信息 与普通的 HQL 查询一起 我得到了许多这样的统计信息 INFO Statistics HQL null time 1724ms rows blah 有人可以以任何方式帮助我为什么null查询大约需要
  • 限制执行第三方软件的线程的权限

    我正在开发一个基于 Eclipse 的应用程序 能够执行第三方组件 不是 eclipse plugin 每个组件都有一个列出权限 以及相应动机 的自定义描述符 这样最终用户可以决定是否执行它 组件在单独的线程中执行 如何根据描述符限制这些线
  • RSA Java 加密和 Node.js 解密不起作用

    我有一个系统 需要在 javascript 中生成 RSA 密钥对 然后将公钥存储在服务器端的数据库中 作为字符串 然后 Java 中的服务器端将使用存储的公钥对字符串进行加密密钥并将其发送到客户端 客户端将使用私钥解密该字符串 我在客户端
  • HQL - 分页的行标识符

    有谁知道HQL是否有一个关键字来标识行 例如ROWID或ROWNUM 我想使用 HQL 实现分页 但我无法使用 setMaxResult 或 setFirstResult 因为我不直接使用会话对象 因此不使用 Query 对象 而只是将查询
  • 如何从资源服务器中的 Spring Security OAuth2 Boot 中提取声明?

    我有一个使用 Net Core 内置的授权服务器身份服务器4 https identityserver4 readthedocs io en latest 它正在按预期工作 从 Node Js 和 Net 授权客户端和资源 现在我尝试添加
  • Log4j 2.x 如何实现惰性参数求值?

    鉴于Java 参数评估机制 http docs oracle com javase specs jls se8 html jls 15 html jls 15 12 4 2 如何Log4j 2 x实施惰性评估 https logging a
  • Selenium 和 xpath:查找带有类/id 的 div 并验证其中的文本

    我正在努力拥有xpath find a div并验证div有一个特定的string里面的文字 这是HTML div class Caption Model saved div and div class gwt HTML sfnStanda
  • 面临 process.start(); 的问题在 Android 棒棒糖中

    面临一个问题process start 在 Android 棒棒糖中 我在服务中遇到了 android lollipop 后台进程的问题 我的代码在 KitKat 之前工作正常 我有一个ProcessBuilder pBuilder并向其中
  • 识别包含本机方法实现的库文件/源

    如何识别包含本机方法实现的库文件 Ex public native String intern 我在哪里可以找到实施 source code of String intern 方法 找到了答案String intern 与快速谷歌搜索 ht
  • 方法中缺少 return 语句错误

    我正在尝试编写一个返回计算机 MAC 地址字符串的静态方法 该函数本身可以在此处找到 http www mkyong com java how to get mac address in java http www mkyong com j
  • Scala 不可变 Map 速度慢

    当我创建地图时 我有一段代码 val map gtfLineArr 8 split map split collect case Array k v gt k v toMap 然后我使用这张地图来创建我的对象 case class MyOb
  • Java中ThreadFactory的使用

    有人可以简要解释一下如何以及何时使用 ThreadFactory 吗 使用和不使用 ThreadFactory 的示例可能确实有助于理解差异 Thanks 这是一种可能的用法 假设您有一个ExecutorService它执行你的Runnab
  • DocumentBuilder 解析产生无效字节 2 of 4 字节 UTF-8 序列错误

    我正在尝试解析包含字符串的字节数组Impresi n in XML final DocumentBuilderFactory builderFactory DocumentBuilderFactory newInstance final D
  • 从 Java 程序中获取局部变量的名称和类型

    这是我正在尝试的代码 JavaCompiler compilerA ToolProvider getSystemJavaCompiler int resultA compilerA run null null null Users a Do
  • 从 google play 中提取统计信息

    我正在建立一些统计数据 并希望获得来自 google play 应用程序商店 的统计数据 最受欢迎 下载量 价格等信息 有谁知道是否有这个 API 或者我必须自己抓取它 有一个名为 android market api 的项目http co
  • java中的“main”可以返回字符串吗?

    java中的public static void main String args 是否有可能返回String代替void 如果是 怎么办 public static String main String args 代替 public st

随机推荐

  • 检测变量变化 C# [重复]

    这个问题在这里已经有答案了 我已经搜索了一段时间 但没有找到任何可以解决我的问题的信息 我有一个整数 private static int kills 0 我想要一个函数在该变量更改时运行 比如 现在是0 如果它变成2 我想要一个像这样的函
  • 权限错误 - 尝试使用 android facebook sdk 交朋友

    我正在尝试向我的 Android 应用程序添加一项功能 允许用户与标记为签到的其他人 签到 我的 checkins 方法工作没有问题 并且可以通过添加用户 ID 作为参数来标记某个方法 请参阅下面的代码 public void postLo
  • 如何绘制 3D 矢量场?

    The Data 我有一个向量场 除了 z 分量之外 所有分量均为 0 我只有该字段的一小部分的数据 我的目标是在 3D 图中显示这个切片 切片 import numpy as np import matplotlib pyplot as
  • 错误:任务“:app:processDebugResources”执行失败。 > java.io.IOException: 无法删除 android studio 中的文件夹“”

    我正在尝试使用 Android Studio 开发 Android 应用程序 所以我创建了一个 Android 应用程序并想发布它 每当我点击 构建项目 来获取apk文件时 我收到此错误 Error Execution failed for
  • 对象实例化后,JS 从构造函数运行函数

    是否有可能做到这一点 var hammer new Hammer create a new instance hammer nail really call Hammer prototoype hit object 我可以在原始对象上计算出
  • Swift NSMutableArray 添加一个数组

    问题是我第一次获取数据WebServices所以我已经显示了这些数据TableView然后用户向下滚动表视图 然后再次调用WebSevices并将此数据再次添加到数组中 但是当我尝试在 nsmutable 类型数组应用程序中再次添加数据时c
  • MySQL 日期差异

    我正在使用 MySQL 和 PHP 我想找出两个日期之间的差异 我有一个名为advertisers 其中有一个字段web start date 我想选择所有条目web start date距离当前日期不到 30 天 只需使用datediff
  • Oracle时间戳到sql server DateTime

    我有多个来自oracle数据库的语句 我需要在SQL Server中使用它们 insert into COMENZI NR COMANDA DATA MODALITATE ID CLIENT STARE COMANDA ID ANGAJAT
  • 将 YouTube 应用中的视频分享到我的 ios 应用

    当我在 iOS 上的 YouTube 应用程序中单击视频上的共享按钮时 是否可以让我的应用程序出现 我知道如何通过将我的文档类型添加到 Info plist 文件来将我的应用程序添加到打开选项中 但是当在 ios 上的 youtube 应用
  • ORA-19011: 字符串缓冲区太小

    我写了一个存储过程SP DEMAND QRY 如果数据中只有少数匹配行 5 或 6 这会产生正确的值Demand桌子 但是 如果该表包含更多匹配行 gt 6 那么在执行它时我会收到此错误 Error ORA 19011 Character
  • AR参考图像 - 图像的直方图较窄

    I am adding an image into ARKit project But it gives error 您有一张图像 其内容不利于检测 有一段在 WWDC18 演讲 ARKit 2 的新增功能中讨论了这一点 并提供了一些优点和
  • 自动绑定模型中的 Polymer Dart $[] 选择器

    Since 聚合物体已被删除 我们需要使用自动结合模板来使用聚合物结合功能之外聚合物元件
  • Discord.py 如何添加静音命令

    我正在制作一个不和谐的机器人 我真的想制作一个静音命令来使有毒用户静音 这是我目前的代码done 这不是重写版本 bot command pass context True async def mute ctx user id userNa
  • Android onSearchRequested() 回调调用活动

    我有一个 MapActivity 当按下搜索按钮时 它将显示 Android 搜索框 SearchManager 管理该对话框 并将用户的查询传递给可搜索活动 该活动搜索 SQLite DB 并使用自定义适配器显示结果 这工作正常 我从显示
  • Ajax Accordion 失去当前窗格

    我正在使用带有多个窗格的 Ajax Accordion 在回发时 当前打开的窗格始终重置回第一个窗格 有什么办法可以解决这个问题吗 Thanks Rob 我通过在查询字符串中传递当前窗格索引 然后将当前窗格设置回目标页面的 Page Loa
  • 实体框架 v6 GroupBy 丢失原始排序

    我有一个查询的以下部分 这是一个更大的查询的结尾 queryBuilder 是一个 IQueryable var results queryBuilder OrderBy x gt x Vehicle RangeId ThenBy x gt
  • arraylist 的副本不断被修改为原始值

    我正在开发一个用于保存和调用屏幕状态的系统 这是我第一次搞乱这种东西 所以我不太确定最好的方法是什么 但我目前存储了所有的 PreviewMonitor 数组列表内的对象 大约 40 个左右 问题是 当我创建一个名为 allPreviewM
  • String.Replace() 与 StringBuilder.Replace()

    我有一个字符串 需要用字典中的值替换标记 它必须尽可能高效 使用 string replace 进行循环只会消耗内存 记住 字符串是不可变的 StringBuilder Replace 是为了处理字符串操作而设计的吗 我希望避免 RegEx
  • 在 iPhone 上打开热点导致我的应用程序的屏幕向下移动

    当我在 iPhone 中打开人员热点时 我的应用程序的屏幕会向下移动 我正在其中加载子视图 但在其他屏幕上它不会发生 它仅发生在我正在加载子视图的屏幕上 那么有人能告诉我可能是什么问题吗 任何帮助将不胜感激 每当出现热点或其他通知时 sta
  • 如何使用 Java 查找 HTML 中的 URL

    我有以下问题 我不会说问题 而是情况 我有一些带有标签和所有内容的 HTML 我想在 HTML 中搜索每个 URL 我现在通过检查 h t t p 的位置来做到这一点 但我认为这不是一个很好的解决方案 有什么好主意吗 补充 我正在寻找某种伪