1

对编码相当陌生,我想要一个可以帮助我提高技能的项目。我不确定哪种语言最适合这种工作,但我肯定更喜欢使用 C++ 或 C#。

对于程序的第一部分,我基本上想尝试把我所有的潘多拉喜欢的东西放在一个电子表格上,歌曲名称是一列,艺术家在另一列。一旦我真正获得了我需要的数据,我不认为格式化太难了,但我不确定在这个时间点上如何与服务器通信。我猜我可能无法获取原始的点赞列表,所以我认为我最好的做法是首先一直扩展点赞列表,然后我需要阅读文本源代码中的屏幕 ro。

第一步,扩展我的喜好,我找到了实际执行此操作的 HTML 源代码:

<div class="show_more tracklike" data-nextLikeStartIndex="0" data-nextThumbStartIndex="5">Show more</div>"

不确定这是否是我可以使用的东西,但我在想我是否可以将 data-nextThumbStartIndex="5" 设置为等于 # of likes - 5(默认显示的数量)它会很容易扩展名单。如果不是,我可能不得不反复单击“显示更多”链接,直到我在页面上获得所有喜欢。

对于下一步,获取我想要的数据,我认为我最好的选择基本上只是抓取我在屏幕上实际看到的文本,然后担心过滤和操作数据。另一种选择是查看源代码,我实际上找到了存储我想要的信息的代码片段。如果我可以检索页面的源代码,我认为从中挑选出我真正想要的数据会相对容易。

所以是的,就是这样,我知道我很菜鸟 atm 我所说的可能是错误的和/或比我想象的要复杂得多,但我是一个很快的学习者,至少如果有人可以指出我在正确的方向与将不胜感激的服务器进行通信。

4

1 回答 1

0

这个问题非常“广泛”(我对潘多拉本身一无所知 - 无法从我住的地方访问它)。

一般来说,有几种不同的方法可以解决这类问题:

  1. Screen Scraping - 基本上像访问网络服务器一样访问网站,然后从返回的 HTML 字符串中挖掘出您需要的信息。这里的问题是数据不是很适合“机器阅读”,因为它往往没有明确的点供“阅读者”查找相关信息,而且很难从“谷壳”中对数据进行排序。

  2. AJAX api - “异步 Java 脚本和 XML”,其中网站的提供者有一个接口来获取 Web 浏览器中的某些数据 - 当然,如果您“假装”成为 Web 浏览器,请求相同类型的信息。您依靠网站拥有这样的接口,但如果存在,则数据通常采用“更适合机器读取的形式”(通常是 XML,但并非总是如此)。

  3. JSON api——“Java Script Object Notation”是一种类似于 AJAX 的解决方案——类似于 XML,JSON 是一种“人类和机器可读的格式”。

后两者绝对是可取的,因为返回的数据是用于机器读取的。缺点是需要“服务器端合作”。这里的好处是 Pandora 确实有一个 JSON API。坏事是它似乎很难使用......这是关于这个主题的一个讨论: Making JSON calls to Unofical Pandora API

这里的主要原则是您向网络服务器发送一些东西,并收到带有请求信息的回复。具体如何完成取决于语言/编程环境。一个流行的 C++ 解决方案是 libcurl。

这里有一个 Ruby Client,使用 JSON 接口 https://github.com/nixme/pandora_client

与 Pandora 接口的 AC# 实现在这里: http: //pandoraunleashed.googlecode.com/svn/trunk/PandoraUnleashed/Pandora.cs

不幸的是,我找不到任何对“列出喜欢”的直接引用。

于 2014-07-05T08:41:55.650 回答