【问题标题】:Any tips on how i would go about extract Pandora likes and putting them on a spreadsheet? (C++/C#)关于如何提取 Pandora 喜欢并将它们放在电子表格中的任何提示? (C++/C#)
【发布时间】:2014-07-05 02:25:24
【问题描述】:

对编码相当陌生,我想要一个可以帮助我提高技能的项目。我不确定哪种语言最适合这种工作,但我肯定更喜欢使用 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,我所说的可能是错误的和/或比我想象的要复杂得多,但我是一个很快的学习者,至少如果有人可以为我指明与服务器通信的正确方向,我们将不胜感激。

【问题讨论】:

    标签: c# html c++ pandora


    【解决方案1】:

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

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

    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 Unoffical Pandora API

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

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

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

    很遗憾,我找不到任何关于“列出喜欢”的直接参考。

    【讨论】:

    • 感谢您的建议,这将是一个很好的起点。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多