问题描述
我想知道是有地铁和手机应用的微软官方的API,我们可以连接并获取有关的应用程序,下载,发布信息等。
May I know is there any official microsoft api for metro and phone apps which we can connect and get information about apps, downloads, publishers etc.
我觉得现场的API仅适用于应用与SkyDrive中,Hotmail或Skype的连接。
I think live api is only for app to connect with skydrive, hotmail or skype.
我可以看到很多网站提供在其网站上这样的信息。
I can see lots of website providing such information on their website.
先谢谢了。
推荐答案
您好:这里是我创建概述过程中的博客文章:
http://jasonthomascarter.blogspot.com/2013/08/the-friendly-developers-guide-to.html
Hello here is a blog post I created outlining the process:http://jasonthomascarter.blogspot.com/2013/08/the-friendly-developers-guide-to.html
在这里,我们走!首先,我们将与Windows应用商店网站的robots.txt文件开始。
Here we go! First we will start with Robots.txt file for the Windows Store website. http://apps.microsoft.com/robots.txt
网站使用robots.txt指导如何做人网络爬虫,他们希望他们看到的东西,他们不希望他们看到的内容。
Websites use robots.txt to guide web crawlers on how to behave, what they want them to see, and what they don't want them to see.
网络机器人(也称为Web流浪汉,爬行,或蜘蛛),是自动遍历Web程序。搜索引擎如谷歌使用它们的索引网站内容,垃圾邮件发送者利用它们来扫描电子邮件地址,他们有许多其他用途。
Web Robots (also known as Web Wanderers, Crawlers, or Spiders), are programs that traverse the Web automatically. Search engines such as Google use them to index the web content, spammers use them to scan for email addresses, and they have many other uses.
在这种情况下,Sitemaps.xml索引文件是我们感兴趣的是http://apps.microsoft.com/windows/sitemap_index.xml
In this case the Sitemaps.xml index file is what we are interested in. http://apps.microsoft.com/windows/sitemap_index.xml
站点地图是网站站长告知搜索引擎有关网站可用于抓取页面的简单方法。在最简单的形式,站点地图是一个XML文件,该文件列出了网站的网址以及关于每个网址相对于网站上其他网址的其他元数据(当它最后更新,多久它通常会发生变化,以及如何重要的是,沿),以便搜索引擎可以更智能地抓取该网站。
Sitemaps are an easy way for webmasters to inform search engines about pages on their sites that are available for crawling. In its simplest form, a Sitemap is an XML file that lists URLs for a site along with additional metadata about each URL (when it was last updated, how often it usually changes, and how important it is, relative to other URLs in the site) so that search engines can more intelligently crawl the site.
该地图索引文件列出了每个单独的站点地图XML文件。截至记者发稿时,apps.microsoft.com网站有141个人站点地图XML文件。
The Sitemap Index file lists out each of the individual Sitemap XML files. As of this writing, the apps.microsoft.com website has 141 individual Sitemap XML files.
在单个文件成千上万的URL到网页Windows应用商店的应用程序。像这样的URL到PlayTo接收器应用程序:
Inside the individual files are thousands of URL's to the web pages of Windows Store apps. Such as this URL to the PlayTo Receiver app:
http://apps.microsoft.com/windows/en-us/app/playto-receiver/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e
这些网页的应用程序不包含一个很好的信息位,我们可以从HTML刮,但我们可以做的更好....我们正在这里的关键信息是应用程序的ID以及这些地区的App ID的公布在店里。
These webpages for the apps do include a good bit of information that we could scrape from the HTML but we can do better.... The key information we are getting here is the App ID's and which geographies those App ID's are published to in the store.
例如:
72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e
72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e
和EN-US等...
and en-us etc...
和现在的好东西,有一些Web服务可以调用使用我们新发现的应用程序ID和地理信息。
And now to the good stuff, there a few web services we can call using our newly found App Id's and geography information.
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服务,但它没有明确的元素名称拼写出来。这里是其中的许多(不是全部)我间pretation开始你了。
There is plenty of information available through this web service but it's not clearly spelled out by the element names. Here is my interpretation of many (not all) of them to start you off.
sSubCategoryName = rawXML.getElementsByTagName('钪')[0] .getElementsByTagName(N)[0] .childNodes [0] .nodeValue;
sSubCategoryName = rawXML.getElementsByTagName('Sc')[0].getElementsByTagName('N')[0].childNodes[0].nodeValue;
sSubCategoryId = rawXML.getElementsByTagName('钪')[0] .getElementsByTagName(I)[0] .childNodes [0] .nodeValue;
sSubCategoryId = rawXML.getElementsByTagName('Sc')[0].getElementsByTagName('I')[0].childNodes[0].nodeValue;
sHasTrial = rawXML.getElementsByTagName('尝试')[0] .childNodes [0] .nodeValue;
sHasTrial = rawXML.getElementsByTagName('Try')[0].childNodes[0].nodeValue;
sDescription = rawXML.getElementsByTagName(D)[0] .childNodes [0] .nodeValue;
sDescription = rawXML.getElementsByTagName('D')[0].childNodes[0].nodeValue;
sDeveloper = rawXML.getElementsByTagName('资源属性')[0] .childNodes [0] .nodeValue;
sDeveloper = rawXML.getElementsByTagName('Dev')[0].childNodes[0].nodeValue;
sWebsite = rawXML.getElementsByTagName('Ws中')[0] .childNodes [0] .nodeValue;
sWebsite = rawXML.getElementsByTagName('Ws')[0].childNodes[0].nodeValue;
sSupport = rawXML.getElementsByTagName('SWS')[0] .childNodes [0] .nodeValue;
sSupport = rawXML.getElementsByTagName('Sws')[0].childNodes[0].nodeValue;
sPrivacy = rawXML.getElementsByTagName('普')[0] .childNodes [0] .nodeValue;
sPrivacy = rawXML.getElementsByTagName('Pu')[0].childNodes[0].nodeValue;
sCategoryName = rawXML.getElementsByTagName(C)[0] .getElementsByTagName(N)[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;
sCategoryId = rawXML.getElementsByTagName('C')[0].getElementsByTagName('I')[0].childNodes[0].nodeValue;
sPrice = rawXML.getElementsByTagName('P')[0] .childNodes [0] .nodeValue;
sPrice = rawXML.getElementsByTagName('P')[0].childNodes[0].nodeValue;
sForegroundColor = rawXML.getElementsByTagName('蛋白原')[0] .childNodes [0] .nodeValue;
sForegroundColor = rawXML.getElementsByTagName('Fg')[0].childNodes[0].nodeValue;
sBackgroundColor = rawXML.getElementsByTagName('博伽梵歌')[0] .childNodes [0] .nodeValue;
sBackgroundColor = rawXML.getElementsByTagName('Bg')[0].childNodes[0].nodeValue;
sAppIcon = rawXML.getElementsByTagName('伊措')[0] .childNodes [0] .nodeValue;
sAppIcon = rawXML.getElementsByTagName('Ico')[0].childNodes[0].nodeValue;
sAppName = rawXML.getElementsByTagName('T')[0] .childNodes [0] .nodeValue;
sAppName = rawXML.getElementsByTagName('T')[0].childNodes[0].nodeValue;
sPackageFamilyName = rawXML.getElementsByTagName('PFN')[0] .childNodes [0] .nodeValue;
sPackageFamilyName = rawXML.getElementsByTagName('Pfn')[0].childNodes[0].nodeValue;
sResourceId = rawXML.getElementsByTagName('R')[0] .childNodes [0] .nodeValue;
sResourceId = rawXML.getElementsByTagName('R')[0].childNodes[0].nodeValue;
SID = rawXML.getElementsByTagName(I)[0] .childNodes [0] .nodeValue;
sId = rawXML.getElementsByTagName('I')[0].childNodes[0].nodeValue;
sCapabilities = sCapabilities + arrCapabilities [k]的.childNodes [0] .nodeValue +,
sCapabilities = sCapabilities + arrCapabilities[k].childNodes[0].nodeValue+",";
sUpdate = rawXML.getElementsByTagName('的Ud')[0] .childNodes [0] .nodeValue;
sUpdate = rawXML.getElementsByTagName('Ud')[0].childNodes[0].nodeValue;
sFeatures1 = rawXML.getElementsByTagName('的Dbp')[0] .childNodes [0] .nodeValue;
sFeatures1 = rawXML.getElementsByTagName('Dbp')[0].childNodes[0].nodeValue;
sFeatures2 = rawXML.getElementsByTagName('的Dbp')[1] .childNodes [0] .nodeValue;
sFeatures2 = rawXML.getElementsByTagName('Dbp')[1].childNodes[0].nodeValue;
sFeatures3 = rawXML.getElementsByTagName('的Dbp')[2] .childNodes [0] .nodeValue;
sFeatures3 = rawXML.getElementsByTagName('Dbp')[2].childNodes[0].nodeValue;
sFeatures4 = rawXML.getElementsByTagName('的Dbp')[3] .childNodes [0] .nodeValue;
sFeatures4 = rawXML.getElementsByTagName('Dbp')[3].childNodes[0].nodeValue;
sFeatures5 = rawXML.getElementsByTagName('的Dbp')[4] .childNodes [0] .nodeValue;
sFeatures5 = rawXML.getElementsByTagName('Dbp')[4].childNodes[0].nodeValue;
sFeatures6 = rawXML.getElementsByTagName('的Dbp')[5] .childNodes [0] .nodeValue;
sFeatures6 = rawXML.getElementsByTagName('Dbp')[5].childNodes[0].nodeValue;
sFeatures7 = rawXML.getElementsByTagName('的Dbp')[6] .childNodes [0] .nodeValue;
sFeatures7 = rawXML.getElementsByTagName('Dbp')[6].childNodes[0].nodeValue;
sFeatures8 = rawXML.getElementsByTagName('的Dbp')[7] .childNodes [0] .nodeValue;
sFeatures8 = rawXML.getElementsByTagName('Dbp')[7].childNodes[0].nodeValue;
sFeatures9 = rawXML.getElementsByTagName('的Dbp')[8] .childNodes [0] .nodeValue;
sFeatures9 = rawXML.getElementsByTagName('Dbp')[8].childNodes[0].nodeValue;
sScreenshot1 = rawXML.getElementsByTagName('SS')[0] .getElementsByTagName('U')[0] .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
sScreenshot2 = rawXML.getElementsByTagName('Ss')[1].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot3 = rawXML.getElementsByTagName(SS)[2] .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
sScreenshot4 = rawXML.getElementsByTagName('Ss')[3].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot5 = rawXML.getElementsByTagName(SS)[4] .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
sScreenshot6 = rawXML.getElementsByTagName('Ss')[5].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot7 = rawXML.getElementsByTagName(SS)[6] .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
sScreenshot8 = rawXML.getElementsByTagName('Ss')[7].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot9 = rawXML.getElementsByTagName(SS)[8] .getElementsByTagName('U')[0] .childNodes [0] .nodeValue
sScreenshot9 = rawXML.getElementsByTagName('Ss')[8].getElementsByTagName('U')[0].childNodes[0].nodeValue
sCaption1 = rawXML.getElementsByTagName('SS')[0] .getElementsByTagName('帽')[0] .childNodes [0] .nodeValue
sCaption1 = rawXML.getElementsByTagName('Ss')[0].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption2 = rawXML.getElementsByTagName(SS)[1] .getElementsByTagName('帽')[0] .childNodes [0] .nodeValue
sCaption2 = rawXML.getElementsByTagName('Ss')[1].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption3 = rawXML.getElementsByTagName(SS)[2] .getElementsByTagName('第')[0] .childNodes [0] .nodeValue
sCaption3 = rawXML.getElementsByTagName('Ss')[2].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption4 = rawXML.getElementsByTagName(SS)[3] .getElementsByTagName('第')[0] .childNodes [0] .nodeValue
sCaption4 = rawXML.getElementsByTagName('Ss')[3].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption5 = rawXML.getElementsByTagName(SS)[4] .getElementsByTagName('第')[0] .childNodes [0] .nodeValue
sCaption5 = rawXML.getElementsByTagName('Ss')[4].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption6 = rawXML.getElementsByTagName(SS)[5] .getElementsByTagName('第')[0] .childNodes [0] .nodeValue
sCaption6 = rawXML.getElementsByTagName('Ss')[5].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption7 = rawXML.getElementsByTagName(SS)[6] .getElementsByTagName('第')[0] .childNodes [0] .nodeValue
sCaption7 = rawXML.getElementsByTagName('Ss')[6].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption8 = rawXML.getElementsByTagName(SS)[7] .getElementsByTagName('第')[0] .childNodes [0] .nodeValue
sCaption8 = rawXML.getElementsByTagName('Ss')[7].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
还有更多的Windows应用商店不仅仅是应用程序,也有评论,其中很多。有在Windows应用商店目前的应用程序超过210,000评论。这些评论来自世界各地,所以你需要一些国家codeS,你方便的花花公子应用程序ID和结尾要注意PN / 1,你会发现,这种服务只返回,每页10条评论直到你用完的评论,只是增加该值来PN / 2 PN / 3等。
There is more to the Windows Store than just apps, there are also reviews, and lots of them. There are currently over 210,000 reviews for apps in the Windows Store. These reviews come from all over the world, so you'll need some country codes, your handy dandy App Id's and pay attention to the pn/1 at the end, you will find that this service only returns 10 reviews per page, just increment this value to pn/2, pn/3 etc.. until you run out of reviews.
VAR arrCounntry codeS =AE,AR,AT,AU,是,BG,BH,CA,CH,瘦肉精 ,CN,CO,CR,CY,CZ,DE,DK,DZ,EE,EG,ES,FI, FR,国标,GR,HK,HR,胡,ID,IE,IL,IN,智商,IT,联办 ,JP,KW,KZ,LB,LK,LT,吕氏春秋,LV,LY,马,MT,MX, MY,NL,否,新西兰,OM,体育,PH,PK,PL,质量检查,RO,RS,位 ,SA,SE,SG,SI,SK,TH,TN,TR,TT,UA,美国,UY, VE,VN];
var arrCounntryCodes = ["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", "NO", "NZ", "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
这一个是更加具有描述性的元素名称,所以我看不出有任何需要这种进一步的解释。你可以看到它的全称,显示名称,图像用户选择重新present自己与。
This one is much more descriptive with the element names, so I don't see any need for further explaination of this. You can see the full name, display name, the image the user has chosen to represent themselves with.
接下来我们可以做seaching一点点...
Next up we can do a little bit of seaching...
<一个href=\"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\">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开发
下面就有点神秘了,但现在你应该使用它。您可以从我的元素获得一个App ID,并从那里回浏览服务 f514d64b-8705-43b7-A400-c4f4f3dedfc0
Here it gets a little cryptic again, but by now you should be used to it. You can get the App ID from the I element and take it from there back to the browse service f514d64b-8705-43b7-a400-c4f4f3dedfc0
所以你有它,拉万吨信息从Windows应用商店中的基础知识,然后可以做你请什么。如果你发现这个有用的和/或使利用信息一些应用程序,有一些额外的信息共享或以其他方式请让我知道在评论
So there you have it, the basics of pulling tons of information out of the Windows Store that you can then do what you please with. If you find this useful and/or make some apps utilizing the information, have some additional information to share or otherwise please let me know in the comments
这篇关于Windows应用商店的API来访问地铁和手机应用的信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!