我如何获取有关应用程序/歌曲/视频等的信息。来自 iTunes Store?
-
12-09-2019 - |
解决方案
苹果现在似乎提供了一个友好的搜索服务返回JSON。 NB:在文档一> 规定一>该API是用于与促进搜索结果(即,它的设计对于联盟链接)连接使用。
实施例,获取信息有关应用程序,如果你知道它的苹果ID:
http://itunes.apple.com/lookup?id=[appleID]
一般关键字搜索
http://itunes.apple.com/search?term=[query]
其他提示
据我所知(并且我已经做了很多研究),没有公共 API。
你说得对,HTML 没有语义结构,所以解析它不会很健壮。但我认为这是你唯一的选择。以下是一些可能有帮助的链接:-
A Python脚本 它解析评论。
Ars Technica 的一篇文章: 星星链接:侵入 iTunes 征求评论.
iPhone 内部文章: 抓取 AppStore 评论.
iTunes 有一个名为“iTunes Store Web Service Search API”的公共 API,它会返回相当多的信息。其中一些已记录在案 这里 但该文档不完整。
您可以使用 API 获取有关 iTunes Store 和 App Store 中出售的所有商品的信息,包括艺术品的 URL、直接指向 iTunes 的链接、开发人员的所有应用程序等等。它非常强大,我很想找到更新的文档。
我目前正在写一篇文章 iPhone 开发常见问题解答 展示一些事情是如何完成的并扩展可用的文档。
在那边有一个环节是JSON!你已经得到了解决右边的这里。你只需要 JSON.framework
我写这个剧本我自己。这不是优化或面向未来的,但它为我工作在此期间...
<?php
ini_set('display_errors', false);
if(isset($_GET['appID']) && isset($_GET['format']))
{
$appID = (int)stripslashes($_GET['appID']);
$format = stripslashes($_GET['format']);
$url = "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=$appID&mt=8";
$useragent = "iTunes/4.2 (Macintosh; U; PPC Mac OS X 10.2";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
$result = curl_exec($ch);
curl_close($ch);
$temp = str_replace("½","",strip_tags(substr($result,
strpos($result,"Average rating for the current version:"),
strpos($result,"Rate this application:")-strpos($result,"Average rating for the current version:"))));
$temp1 = explode("ratings",$temp);
if(strpos($temp1[2], "Average rating for all versions:"))
$temp1[2] = substr($temp1[2],0,stripos($temp1[2],"Average rating for all versions:"));
$temp1[2] = preg_replace('/\s\s+/', ' ', $temp1[2]);
$temp2 = explode(" ",$temp1[2]);
$ratings[0] = $temp2[1];
$ratings[1] = $temp2[2];
$ratings[2] = $temp2[3];
$ratings[3] = $temp2[4];
$ratings[4] = $temp2[5];
if($format == "prettyPrint")
printRatings($ratings);
else if($format == "XML");
getXML($ratings);
}
else
{
echo "Enter the app id and format (http://iblackjackbuddy.com/getAppRatings.php?appID=###&format=###";
}
function printRatings($ratings)
{
echo "Five stars: " . $ratings[0];
echo "<br>Four stars: " . $ratings[1];
echo "<br>Three stars: " . $ratings[2];
echo "<br>Two stars: " . $ratings[3];
echo "<br>One star: " . $ratings[4];
echo "<hr>Total ratings: " . getTotalRatings($ratings);
echo "<br>Average rating: " . getAverageRating($ratings);
}
function getTotalRatings($ratings)
{
$temp = 1;
for($i=0; $i < count($ratings); ++$i)
$temp+=$ratings[$i];
return $temp;
}
function getAverageRating($ratings)
{
$totalRatings = getTotalRatings($ratings);
return round(5*($ratings[0]/$totalRatings)
+ 4*($ratings[1]/$totalRatings)
+ 3*($ratings[2]/$totalRatings)
+ 2*($ratings[3]/$totalRatings)
+ 1*($ratings[4]/$totalRatings),2);
}
function getXML($ratings)
{
header('Content-type: text/xml');
header('Pragma: public');
header('Cache-control: private');
header('Expires: -1');
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<Rating>';
echo '<FiveStars>'.$ratings[0].'</FiveStars>';
echo '<FourStars>'.$ratings[1].'</FourStars>';
echo '<ThreeStars>'.$ratings[2].'</ThreeStars>';
echo '<TwoStars>'.$ratings[3].'</TwoStars>';
echo '<OneStar>'.$ratings[4].'</OneStar>';
echo '<TotalRatings>'.getTotalRatings($ratings).'</TotalRatings>';
echo '<AverageRating>'.getAverageRating($ratings).'</AverageRating>';
echo '</Rating>';
}
?>
不隶属于 StackOverflow