9

我可以知道是否有任何官方的 microsoft api 用于地铁和电话应用程序,我们可以连接并获取有关应用程序、下载、发布者等的信息。

我认为 live api 仅适用于与 skydrive、hotmail 或 skype 连接的应用程序。

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

提前致谢。

4

5 回答 5

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 机器人(也称为 Web Wanderers、Crawlers 或 Spiders)是自动遍历 Web 的程序。谷歌等搜索引擎使用它们来索引网络内容,垃圾邮件发送者使用它们来扫描电子邮件地址,它们还有许多其他用途。

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

http://www.sitemaps.org/

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

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

在各个文件中包含数千个指向 Windows 应用商店应用网页的 URL。例如 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

和我们等...

现在到了好东西,我们可以使用我们新发现的 App Id 和地理信息调用一些 Web 服务。

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

通过此 Web 服务可以获得大量信息,但元素名称并没有清楚地说明这些信息。这是我对其中许多(不是全部)的解释,以帮助您入门。

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 应用商店中有超过 210,000 条应用评论。这些评论来自世界各地,所以你需要一些国家代码,你方便的花花公子 App Id 并注意最后的 pn/1,你会发现这个服务每页只返回 10 条评论,只是增加将此值设置为 pn/2、pn/3 等。直到您的评论用完。

var arrCountryCodes = [“AE”、“AR”、“AT”、“AU”、“BE”、“BG”、“BH”、“CA”、“CH”、“CL”、“CN”、“CO "、"CR"、"CY"、"CZ"、"DE"、"DK"、"DZ"、"EE"、"EG"、"ES"、"FI"、"FR"、"GB"、 “GR”、“HK”、“HR”、“HU”、“ID”、“IE”、“IL”、“IN”、“IQ”、“IT”、“JO”、“JP”、“KW” "、"KZ"、"LB"、"LK"、"LT"、"LU"、"LV"、"LY"、"MA"、"MT"、"MX"、"MY"、"NL"、 “否”、“新西兰”、“OM”、“PE”、“PH”、“PK”、“PL”、“QA”、“RO”、“RS”、“RU”、“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=软件开发者

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

至此,您已经掌握了从 Windows 应用商店中提取大量信息的基础知识,然后您就可以随心所欲了。如果您发现这很有用和/或使用这些信息制作了一些应用程序,请分享一些其他信息,否则请在评论中告诉我

于 2013-10-10T14:35:22.240 回答
2

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

于 2013-03-26T08:59:47.523 回答
1

您可以在 windows phone8 应用程序中这样做,只需将您的应用程序升级到 wp8 并使用此链接Windows.ApplicationModel.Store 命名空间访问市场中的应用程序信息。

希望这会帮助你。

于 2013-03-28T06:44:29.330 回答
1

Install Fiddler, configure it so the store can connect localhost (win8 config). Now trace the Windows store web traffic and you will see the URLs that the Windows store is using like:

https://services.apps.microsoft.com/4R/6.2.9200-1/615/nl-NL.nl.en-GB.en/m/NL/Apps/4bd603d9-21da-4282-a689-b2a4f384717e/Reviews/all/s/date/1/pn/2

于 2013-07-15T12:16:49.830 回答
1

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

于 2014-04-25T07:27:46.440 回答