编码相当新,我想要一个项目可以帮助我提高我的技能。我不确定哪种语言最适合这类事业,但我绝对更喜欢使用C ++或C#。
对于程序的第一部分,我基本上想尝试把我所有的潘多拉喜欢并把它们放在一个电子表格上,歌曲名称是一列,另一个是艺术家。一旦我真正得到我需要的数据,我就不会看到格式太难了,但我现在还不确定如何与服务器进行通信。我猜我可能无法获得原始的喜欢列表,所以我认为我最好的行动方案是首先扩展喜欢列表,然后我需要在源代码中读取屏幕上的文字。
第一步,扩展我的喜欢我找到了实际执行此操作的HTML源代码:
<div class="show_more tracklike" data-nextLikeStartIndex="0" data-nextThumbStartIndex="5">Show more</div>"
不确定这是否是我可以使用的东西,但我在想是否可以设置数据-sextThumbStartIndex =&#34; 5&#34;为了等于#sof - 5(默认显示的数量),扩展列表相当容易。如果不是,我可能不得不点击&#34;显示更多&#34;反复链接,直到我拥有页面上的所有喜欢。
下一步,获取我想要的数据,我认为我最好的选择是基本上只是抓住我在屏幕上看到的文本,然后担心过滤和操纵数据。另一个选项是查看源代码,我实际上找到了存储我想要的信息的代码片段。如果我可以检索页面的源代码,我认为从中挑选出我真正想要的数据会相对容易。
所以,关于它,我知道我很有说服力,而我所说的可能是错误的和/或比我想的要复杂得多但是我很漂亮快速学习者,至少如果有人能指出我正确的方向与服务器进行沟通,那将非常感激。
答案 0 :(得分:0)
这个问题相当“宽泛”(我完全不了解潘多拉本身 - 无法从我居住的地方访问它)。
一般来说,有几种不同的方法可以解决这类问题:
屏幕抓取 - 基本上像访问网络服务器一样访问网站,并从返回的HTML字符串中挖掘出您需要的信息。这里的问题是数据不太适合“机器读取”,因为它通常没有“读者”找到相关信息的明显点,而且很难从“糠”中对数据进行排序。
AJAX api - “异步Java脚本和XML”,网站提供商有一个界面来获取网络浏览器中的某些数据 - 当然,如果你“假装”成为网络浏览器,请求相同类型的信息。您依靠网站来拥有这样的界面,但如果它存在,则数据通常采用“更适合机器读取的形式”(通常是XML,但并非总是如此)。
JSON api - “Java Script Object Notation”是类似于AJAX的解决方案 - 就像XML一样,JSON是一种“人类和机器可读格式”。
后两者绝对是可取的,因为回来的数据用于机器读数。缺点是你需要“服务器端合作”。这里的好处是Pandora确实有一个JSON API。糟糕的是它似乎很难使用......以下是关于这个主题的一个讨论: Making JSON calls to Unoffical Pandora API
这里的主要原则是您将一些内容发送到网络服务器,并收到包含所请求信息的回复。具体如何完成取决于语言/编程环境。一种流行的C ++解决方案是libcurl。
这里有一个Ruby客户端,使用JSON接口 https://github.com/nixme/pandora_client
与Pandora交互的C#实现在这里: http://pandoraunleashed.googlecode.com/svn/trunk/PandoraUnleashed/Pandora.cs
不幸的是,我找不到任何直接引用“列表赞”的内容。