windows存储api访问地铁和手机应用程序信息

时间:2013-03-26 08:36:39

标签: api windows-phone-7 microsoft-metro windows-store-apps

我是否知道有关于地铁和手机应用的官方微软API,我们可以连接并获取有关应用,下载,发布商等的信息。

我认为live api仅适用于连接skydrive,hotmail或Skype的应用程序。

我可以看到很多网站在他们的网站上提供这些信息。

提前致谢。

5 个答案:

答案 0 :(得分:12)

你好这是我创建的博客文章,概述了这个过程: http://jasonthomascarter.blogspot.com/2013/08/the-friendly-developers-guide-to.html

我们走吧!首先,我们将从Windows Store网站的Robots.txt文件开始。 http://apps.microsoft.com/robots.txt

网站使用robots.txt来指导网络抓取工具如何表现,希望他们看到什么,以及他们不希望他们看到什么。

http://www.robotstxt.org/

Web Robots(也称为Web Wanderers,Crawlers或Spiders)是自动遍历Web的程序。谷歌等搜索引擎使用它们来索引网页内容,垃圾邮件发送者使用它们扫描电子邮件地址,还有许多其他用途。

在这种情况下,我们感兴趣的是Sitemaps.xml索引文件。http://apps.microsoft.com/windows/sitemap_index.xml

http://www.sitemaps.org/

站点地图是网站管理员向搜索引擎通知其网站上可用于抓取的网页的简便方法。在最简单的形式中,Sitemap是一个XML文件,它列出了网站的URL以及有关每个URL的其他元数据(上次更新时间,通常更改的频率以及相对于网站中其他网址的重要性) )以便搜索引擎可以更智能地抓取网站。

站点地图索引文件列出了每个站点地图XML文件。在撰写本文时,apps.microsoft.com网站有141个单独的Sitemap XML文件。

在单个文件中,有数千个URL存储在Windows应用商店应用的网页中。例如PlayTo Receiver应用程序的这个URL:

http://apps.microsoft.com/windows/en-us/app/playto-receiver/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e

这些应用程序的网页确实包含了一些我们可以从HTML中获取的信息但我们可以做得更好....我们在这里获得的关键信息是应用程序ID以及哪些地理位置应用程序ID已发布到商店中。

例如:

72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e

和en-us等...

现在,好的东西,我们可以使用我们新发现的应用ID和地理信息来调用一些网络服务。

https://services.apps.microsoft.com/browse/6.2.9200-1/615/en-US_en-US/c/US/cp/10005001/Apps/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e

此网络服务提供了大量信息,但元素名称并未明确说明。以下是我对许多(不是全部)启动你的解释。

sSubCategoryName = rawXML.getElementsByTagName(' Sc')[0] .getElementsByTagName(' N')[0] .childNodes [0] .nodeValue;

sSubCategoryId = rawXML.getElementsByTagName(' Sc')[0] .getElementsByTagName(' I')[0] .childNodes [0] .nodeValue;

sHasTrial = rawXML.getElementsByTagName(' Try')[0] .childNodes [0] .nodeValue;

sDescription = rawXML.getElementsByTagName(' D')[0] .childNodes [0] .nodeValue;

sDeveloper = rawXML.getElementsByTagName(' Dev')[0] .childNodes [0] .nodeValue;

sWebsite = rawXML.getElementsByTagName(' Ws')[0] .childNodes [0] .nodeValue;

sSupport = rawXML.getElementsByTagName(' Sws')[0] .childNodes [0] .nodeValue;

sPrivacy = rawXML.getElementsByTagName(' Pu')[0] .childNodes [0] .nodeValue;

sCategoryName = rawXML.getElementsByTagName(' C')[0] .getElementsByTagName(' N')[0] .childNodes [0] .nodeValue;

sCategoryId = rawXML.getElementsByTagName(' C')[0] .getElementsByTagName(' I')[0] .childNodes [0] .nodeValue;

sPrice = rawXML.getElementsByTagName(' P')[0] .childNodes [0] .nodeValue;

sForegroundColor = rawXML.getElementsByTagName(' Fg')[0] .childNodes [0] .nodeValue;

sBackgroundColor = rawXML.getElementsByTagName(' Bg')[0] .childNodes [0] .nodeValue;

sAppIcon = rawXML.getElementsByTagName(' Ico')[0] .childNodes [0] .nodeValue;

sAppName = rawXML.getElementsByTagName(' T')[0] .childNodes [0] .nodeValue;

sPackageFamilyName = rawXML.getElementsByTagName(' Pfn')[0] .childNodes [0] .nodeValue;

sResourceId = rawXML.getElementsByTagName(' R')[0] .childNodes [0] .nodeValue;

sId = rawXML.getElementsByTagName(' I')[0] .childNodes [0] .nodeValue;

sCapabilities = sCapabilities + arrCapabilities [k] .childNodes [0] .nodeValue +",";

sUpdate = rawXML.getElementsByTagName(' Ud')[0] .childNodes [0] .nodeValue;

sFeatures1 = rawXML.getElementsByTagName(' Dbp')[0] .childNodes [0] .nodeValue;

sFeatures2 = rawXML.getElementsByTagName(' Dbp')[1] .childNodes [0] .nodeValue;

sFeatures3 = rawXML.getElementsByTagName(' Dbp')[2] .childNodes [0] .nodeValue;

sFeatures4 = rawXML.getElementsByTagName(' Dbp')[3] .childNodes [0] .nodeValue;

sFeatures5 = rawXML.getElementsByTagName(' Dbp')[4] .childNodes [0] .nodeValue;

sFeatures6 = rawXML.getElementsByTagName(' Dbp')[5] .childNodes [0] .nodeValue;

sFeatures7 = rawXML.getElementsByTagName(' Dbp')[6] .childNodes [0] .nodeValue;

sFeatures8 = rawXML.getElementsByTagName(' Dbp')[7] .childNodes [0] .nodeValue;

sFeatures9 = rawXML.getElementsByTagName(' Dbp')[8] .childNodes [0] .nodeValue;

sScreenshot1 = rawXML.getElementsByTagName(' Ss')[0] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot2 = rawXML.getElementsByTagName(' Ss')[1] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot3 = rawXML.getElementsByTagName(' Ss')[2] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot4 = rawXML.getElementsByTagName(' Ss')[3] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot5 = rawXML.getElementsByTagName(' Ss')[4] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot6 = rawXML.getElementsByTagName(' Ss')[5] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot7 = rawXML.getElementsByTagName(' Ss')[6] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot8 = rawXML.getElementsByTagName(' Ss')[7] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sScreenshot9 = rawXML.getElementsByTagName(' Ss')[8] .getElementsByTagName(' U')[0] .childNodes [0] .nodeValue

sCaption1 = rawXML.getElementsByTagName(' Ss')[0] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

sCaption2 = rawXML.getElementsByTagName(' Ss')[1] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

sCaption3 = rawXML.getElementsByTagName(' Ss')[2] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

sCaption4 = rawXML.getElementsByTagName(' Ss')[3] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

sCaption5 = rawXML.getElementsByTagName(' Ss')[4] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

sCaption6 = rawXML.getElementsByTagName(' Ss')[5] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

sCaption7 = rawXML.getElementsByTagName(' Ss')[6] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

sCaption8 = rawXML.getElementsByTagName(' Ss')[7] .getElementsByTagName(' Cap')[0] .childNodes [0] .nodeValue

Windows应用商店不仅仅是应用,还有评论,还有很多。目前,Windows Store中的应用程序有超过210,000条评论。这些评论来自世界各地,因此您需要一些国家/地区代码,方便的花花公子应用程序ID并注意最后的pn / 1,您会发现此服务仅返回10每页评论,只需将此值增加到pn / 2,pn / 3等等,直到您用完评论为止。

var arrCounntryCodes = [" AE"," AR"," AT"," AU"," BE&#34 ;," BG"," BH"," CA"," CH"," CL",&#34 ; CN"," CO"," CR"," CY"," CZ"," DE" ," DK"," DZ"," EE"," EG"," ES"," FI"," FR"," GB"," GR"," HK"," HR", " HU"," ID"," IE"," IL"," IN"," IQ& #34;," IT"," JO"," JP"," KW"," KZ",& #34; LB"," LK"," LT"," LU"," LV"," LY&# 34;," MA"," MT"," MX"," MY"," NL",&# 34; NO"," NZ"," OM"," PE"," PH"," PK&#34 ;," PL"," QA"," RO"," RS"," RU",&#34 ; SA"," SE"," SG"," SI"," SK"," TH" ," TN"," TR"," TT"," UA "," US"," UY"," VE"," VN"];

https://services.apps.microsoft.com/4R/6.2.9200-1/1/en-US/m/US/Apps/f514d64b-8705-43b7-a400-c4f4f3dedfc0/Reviews/all/s/date/1/pn/1

这个元素名称更具描述性,因此我不认为有必要进一步解释这一点。您可以看到全名,显示名称,用户选择用来表示自己的图像。

接下来我们可以做一点点的搜索......

https://services.apps.microsoft.com/search/6.2.9200-1/615/en-US_en-US/m/US/c/US/il/en-US/cp/10005001/query/cid/0/pf/1/pc/0/pt/x64/af/0/lf/0/s/0/2/pn/0?phrase=Software开发人员

这里再次有点神秘,但到现在你应该习惯了。您可以从I元素获取App ID并将其从那里带回浏览服务 f514d64b-8705-43b7-a400-c4f4f3dedfc0

所以你有它,从Windows商店中提取大量信息的基础知识,然后你可以随心所欲地做。如果您发现这有用和/或使某些应用程序利用这些信息,请提供一些其他信息以供分享或以其他方式在评论中告诉我

答案 1 :(得分:2)

没有用于检索数据的API。如果您想提供此类信息,则必须直接从网站上获取数据,然后自行保存。做类似事情的网站已经做了类似的事情。

答案 2 :(得分:1)

你可以在windows phone 8应用程序中这样做, 只需将您的应用升级到wp8,然后在市场中使用此链接Windows.ApplicationModel.Store namespace访问应用信息。

希望这会对你有所帮助。

答案 3 :(得分:1)

答案 4 :(得分:1)

您可以考虑使用第三方的免费API,例如http://www.appfeds.com/general/api/