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

对于该程序的第一部分,我基本上想尝试将所有我喜欢的pandora喜欢的东西放到电子表格中,歌曲名称是一列,而艺术家则在另一列。我一看到实际需要的数据,就不会觉得格式化太费力,但是我现在还不确定如何与服务器进行通信。我猜我可能无法获取喜欢的原始列表,所以我认为我的最佳做法是首先完全扩展喜欢的列表,然后我需要阅读全文屏幕显示在源代码中。

第一步,展开像我这样的代码,发现实际上可以做到这一点的HTML源代码:

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


不知道这是否是我可以使用的东西,但是我在考虑是否可以将data-nextThumbStartIndex =“ 5”设置为点赞次数-5(默认情况下显示的数量),扩展起来会很容易名单。如果不是这样,我可能不得不反复单击“显示更多”链接,直到页面上所有喜欢的人为止。

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

所以,是的,我知道我是一个非常漂亮的菜鸟,而且我说的可能是错误的,并且/或者比我想的要复杂得多,但是我是一个非常快速的学习者,至少如果有人可以指出我的话,与服务器通信的正确方向将不胜感激。

最佳答案

这个问题相当“广泛”(而且我完全不了解Pandora本身-无法从我居住的地方访问它)。

通常,有几种不同的方法可以解决此类问题:


屏幕抓取-基本上就像访问Web服务器一样访问网站,然后从返回的HTML字符串中找出所需的信息。这里的问题是数据不是很适合“机器阅读”,因为“阅读器”通常没有明确的点来找到相关信息,并且很难从“包ch”中对数据进行分类。
AJAX api-“异步Java脚本和XML”,其中网站的提供者具有一个接口,可将某些数据提取到网络浏览器中-当然,如果您“假装”成为网络浏览器,则请求相同类型的信息。您依赖于网站具有这样的界面,但如果存在,则数据通常采用“更适合机器读取的形式”(通常为XML,但并非总是如此)。
JSON api-“ Java Script Object Notation”是与AJAX类似的解决方案-像XML一样,JSON是一种“人类和机器可读的格式”。


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

这里的主要原理是您将一些东西发送到Web服务器,并收到包含所请求信息的回复。确切的完成方式取决于语言/编程环境。流行的C ++解决方案是libcurl。

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

与Pandora交互的C#实现在这里:
http://pandoraunleashed.googlecode.com/svn/trunk/PandoraUnleashed/Pandora.cs

不幸的是,我找不到直接引用“列出喜欢”的内容。

10-07 13:37