Java - 从网页源代码中提取明文(从网站获取海量歌词)

标签 java web-scraping pseudocode

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

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

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

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

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

  • URL url = new URL(http://www.elyrics.net/read/b/buck-65-lyrics/i-look-good-lyrics.html);
    • I could substitute "buck-65-lyrics" & "i-look-good-lyrics" to reflect user input?
    • Input re-directed to PostgreSQL table

Current objective:

  • User will request name of {song, artist, album}, Java front-end will query remote webpage
  • Full source code (containing plaintext) will be extracted with Java front-end
  • Lyrics will be extracted from source code (somehow)
  • If song is not currently indexed by PostgreSQL server, will be added to table.
  • Operations will be made on the plaintext to suit the objectives of the program

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

谢谢,泰勒

最佳答案

此方法称为 screen or data scraping .请注意,使用它通常会破坏目标服务的 terms of service .通常,这不是一种稳健的方法,这就是为什么可以保证其运行方式的类似 API 的服务更可取。

您的方法听起来在大多数情况下都行得通,但有几点需要牢记。

  • 如果您与之交互的网络服务需要非常精确的 URL 架构,您不应将用户提供的数据直接输入其中,因为它很可能会因遗漏单词、缩写或拼写错误而变得困惑。您最好先进行某种搜索,然后使用该搜索的最佳结果。
  • 读取 HTML 数据比您想象的要复杂。使用现有的库,如 jsoup为您提供帮助。

关于Java - 从网页源代码中提取明文(从网站获取海量歌词),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941259/

相关文章:

java - 从edittext-Android获取文本出错

vba - 亚马逊销售数据(使用 Excel VBA)

python - Scrapy,从第二组链接中抓取页面

python - 使用 selenium (Python) 轮换服务器 IP

java - 使用快速排序

c - 测试集指令的哲学家就餐问题

java - spring-eureka-common maven 依赖已被替换吗?

Java 可选流到可选流

algorithm - 寻找计算 Smith 和 Schwartz 集的伪代码

c# - Android 和 REST Web 服务响应帮助