我正在开发一个显示应用程序列表的应用程序,我想从Google Play商店获取此应用程序的Icon以在列表中显示它,所以如果有任何方法可以这样做,请告诉我
答案 0 :(得分:3)
我最近在更新我的投资组合网站时不得不自己解决这个问题,所以我甚至为你准备了一些代码:)我所做的是在php中,但我不确定你想要使用什么。首先,我使用view-> developer->开发人员工具(在chrome上)使用我的应用程序检查了页面的来源。然后使用它我可以遍历DOM寻找我可以用来识别应用程序图标的东西。我找到了这个:
这表明应用程序图标是在一个带有“doc-banner-icon”类的div中保存 - 我在其他地方找不到这个类,所以我认为它是唯一的div类。然后在我的PHP代码中,我使用simpledomparser加载网址,找到图标并吐出它的网址,如下所示:
<?php
include('simple_html_dom.php');
$html = file_get_html("https://play.google.com/store/apps/details?id=com.smithyproductions.swissarmycarrot"); //put your app id here
$bannerImage = $html->find('.doc-banner-icon'); //the class we found before
$img = $bannerImage[0]->find('img'); //find the img tag inside the div
$imgUrl = $img[0]->src; //get its src url
$arr = array(); //in my own example I filled this array with other things like the title an screenshots
$arr['imgUrl'] = $imgUrl;
echo json_encode($arr); //output it in an easy to read format
?>
导致像 {'imgUrl','https://lh6.ggpht.com/1WMU4E3lnbjz5yxLHxsPrJAJPw3uYZ8LXk3QkD1EKOxwOcHu0W9QyGlpM5AfrKYEVzzi=w124'}
关于这种方法,请记住一件事:Google可以随时更改所有内容的呈现方式,以便在发生这种情况时更新您的应用程序:)
答案 1 :(得分:1)
我修改了roarster的代码,以便使用Play商店的新网页,并简化了它:
<?php
include('simple_html_dom.php');
$play_link = $_GET['playlink']; //Play store link
$html = file_get_html($play_link); //put your app id here
$bannerImage = $html->find('div.cover-container'); //the class we found before
$img = $bannerImage[0]->find('img'); //find the img tag inside the div
$imgUrl = $img[0]->src; //get its src url
$arr = array(); //in my own example I filled this array with other things like the title an screenshots
$arr['imgUrl'] = $imgUrl;
echo json_encode($arr); //output it in an easy to read format
?>
现在加载例如:yourwebpage.com/script.php?playlink=https://play.google.com/store/apps/details?id=com.igg.android.im
你得到了结果;)
答案 2 :(得分:0)
Google不断更改页面结构的问题,到目前为止,我找不到与Apple Store类似的官方处理方式的任何资源。
无论如何,下面是我今天(2019年6月)使用的php代码
PS:在我的代码中,一旦我设法获取图标URL,就将其缓存在数据库中,这样就不必在Google Play商店中再次查找
try{
$lookupData = @file_get_contents('https://play.google.com/store/apps/details?id=com.google.android.gm&hl=en');
// Not valid any more
$pregString = '/<meta itemprop="image" content="(.*?)"\/>/';
//June 2019
$pregString = '/<img src="(.*?)" srcset=".*" class=".*" aria-hidden="true" alt="Cover art" itemprop="image">/';
preg_match($pregString, $lookupData, $output);
} catch (\Throwable $e) {
$error = $e->getMessage();
if (strpos($error, '404 Not Found') === false) {
//unknown error
}else{
//Package not found, use default icon or something
}
}
if(isset($output[1])){
//Store $output[1];
}else{
//icon not found, use default icon or something
}