抓取并刮擦iTunes App Store

时间:2010-06-23 01:05:39

标签: language-agnostic itunes screen-scraping web-crawler

我注意到iTunes preview允许您通过http://协议抓取和抓取页面。但是,许多链接都试图在iTunes而不是浏览器中打开。例如,当您转到iBooks页面时,会立即尝试使用itms://协议打开网址。

是否有其他方法可以抓取App Store,或者这是唯一的方法吗?

itms://协议链接本身可以以某种方式被抓取吗?

4 个答案:

答案 0 :(得分:21)

我会很好地了解iTunes Search API和iTunes Enterprise Partner API

您可以以漂亮的JSON文件格式获得所需的大部分/全部信息。

如果您无法通过API获取所需信息,我会对它感兴趣:)

答案 1 :(得分:5)

正如phillipp所提到的,iTunes搜索API是一种以JSON格式检索有关App Store列表的数据的简便方法。

只需使用您的应用ID进行查询(您可以通过在itunes.apple.com上查看应用的网络列表来查找应用ID),例如:

http://itunes.apple.com/lookup?id=INSERT_YOUR_APP_ID_HERE
然后,将生成的JSON解析为您心中的内容。

答案 2 :(得分:4)

http://链接和itms://链接之间的唯一区别是您需要将用户代理设置为iTunes用户代理,并且根据版本,您可能还必须包含基于验证码的验证码在一些不那么秘密的算法上。

例如,这是iTunes 9的代码:

# Some magic. Generates a seed we use for X-Apple-Validation. Adapted from LWP::UserAgent::iTMS_Client.
function comp_seed($url, $user_agent) {
    $random  = sprintf( "%04X%04X", rand(0,0x10000), rand(0,0x10000) );
    $static  = base64_decode("ROkjAaKid4EUF5kGtTNn3Q==");
    $url_end = ( preg_match("|.*/.*/.*(/.+)$|",$url,$matches)) ? $matches[1] : '?';
    $digest  = md5(join("",array($url_end, $user_agent, $static, $random)) );
    return $random . '-' . strtoupper($digest);
}

但是,如果您只是在抓取,iTunes预览应该适用于您的目的,您提供给iBooks页面的链接有足够的信息可以抓取。

答案 3 :(得分:1)

我们在一年前尝试过刮痧自己太过头疼了。 Philipp的评论是一个很好的评论,因为来自苹果的企业供稿(需要以合法用途申请)确实有很多有用的信息,你可能会在抓取之后。

有一些公司也提供数据即服务 - abto和AppMonsta是我在寻找时听到的两个。我似乎无法找到abto,但似乎http://appmonsta.com。搜索API看起来没问题(从未进行过实验)但有限。

祝你好运!