【问题标题】:Extracting URL from the address bar of a browser从浏览器的地址栏中提取 URL
【发布时间】:2015-02-09 00:08:10
【问题描述】:

我编写了一个 java 程序来提取硬编码 URL 的网页内容。现在我想在用户访问它时从网络浏览器中提取一个 URL,而不是使用硬编码的 URL。是否有任何 Java 库或 API 可以做到这一点?

【问题讨论】:

  • document.locationrequest.getRequestURL() ??
  • 您的问题是关于 java 还是 javascript?
  • 我想获取 URL 而不是位置。问题是关于java的

标签: url browser java


【解决方案1】:

HTML 文档有多种模式和不同的标签。提取有用的信息(相关内容)并不容易,因为您应该了解页面的编写方式才能真正了解内容的哪些部分是相关的。

一般建议仅从名为biolerpipe 的网页中提取相关内容,该网页已在 ACM 中发布。它使用一些启发式方法来查找相关的文本片段并提取它们。

如果要从文档中提取 URL,则需要搜索并提取 URL,或者,如果 URL 不在标签中,则需要在页面内容中查找 url 模式以提取正确链接。没有其他选项可以从页面(文档)获取 URL。

您无法避免出现在 URL 内容中的 HTML 标记和脚本(以浏览器为您显示的形式),因为这些标记是 URL 内容的一部分。要获取 URL 的相关内容,您可以使用锅炉管来提取有用的信息(它使用 URL 类)。否则,您可以使用 URL 类。

一旦你的类路径中有样板,从网页中提取“主要”内容就非常简单了:

URL url = new URL("http://www.example.com/some-location/index.html");
// NOTE: Use ArticleExtractor unless DefaultExtractor gives better results for you
String text = ArticleExtractor.INSTANCE.getText(url);

但是有些页面是 Boilerpipe 无法提取的,我修复了 here。我附上了带有修复程序的源代码。此修复可避免在某些页面中出现以下异常 "HTTP response code : 403 for URL"

【讨论】:

  • 我不想获取给定页面的 URL。我想在用户访问它时获取任何网页的 URL。有什么方法可以在java代码中使用javascript来做到这一点???
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 2017-05-31
相关资源
最近更新 更多