2

O社区,我正在为一个应用程序编写伪代码,该应用程序通过阅读页面的源代码从远程主机(网络服务器,不是我自己的)中提取歌词。这是假设:

  • 歌词以明文形式显示
  • Java 前端应用程序可以读取包含歌词的部分源代码

我不是在寻找源代码来回答这个问题,但是用于查询远程网页以获取纯文本内容的技术术语是什么?

如果我可以确定网页命名方案,我可以将 URL 对象的指针设置为相应的网页,对吗?唯一的限制是不规则的大写,并且只有在完全一样的地方找到明文时才会有效。

你有什么建议吗?我在为“Buck 65”考虑这样的事情,唱“我看起来不错”

  • URL url = 新 URL(http://www.elyrics.net/read/b/buck-65-lyrics/i-look-good-lyrics.html);
    • 我可以替换“buck-65-lyrics”和“i-look-good-lyrics”来反映用户输入吗?
    • 输入重定向到 PostgreSQL 表

当前目标:

  • 用户将请求{歌曲、艺术家、专辑}的名称,Java 前端将查询远程网页
  • 将使用 Java 前端提取完整的源代码(包含明文)
  • 歌词将从源代码中提取(不知何故)
  • 如果歌曲当前没有被 PostgreSQL 服务器索引,将被添加到表中。
  • 将在明文上进行操作以适应程序的目标

我只是在寻找方向。如果我完全走错了方向,请告诉我。这仅适用于伪代码。我不是在寻找答案或分发资料,我需要帮助来确定我需要做什么。是否有您知道的用于提取纯文本的外部库?我要完成的工作有哪些技术名称?

谢谢,泰勒

4

3 回答 3

1

这种方法称为屏幕或数据抓取。请注意,使用它通常会违反目标服务的服务条款。通常,这不是一种健壮的方法,这就是为什么具有操作方式保证的类 API 服务更可取的原因。

您的方法听起来在大多数情况下都有效,但需要记住一些事项。

  • 如果您正在与之交互的 Web 服务需要非常精确的 URL 方案,则不应将用户提供的数据直接输入其中,因为它可能会因缺少单词、缩写或拼写错误而变得混乱。您最好先进行某种搜索,然后使用该搜索的最佳结果。
  • 读取 HTML 数据比您想象的要复杂。使用像jsoup这样的现有库来帮助您。
于 2012-06-07T23:40:48.553 回答
0

从网站中提取内容的技术术语是网络抓取,你可以用谷歌搜索。有很多在线库,对于 java 有 jsoup。尽管编写自己的正则表达式很容易。我会做的第一件事是使用 curl 并从站点获取内容仅用于测试,这将使您对要做什么有一个公平的了解。

于 2012-06-07T23:42:12.983 回答
0

您将不得不使用 HTML 解析器。最受欢迎的之一是jsoup

注意你所做的事情的法律方面;)

于 2012-06-07T23:42:13.920 回答