Ответ 1
Привет, вот сообщение в блоге, которое я создал, описывая процесс: http://jasonthomascarter.blogspot.com/2013/08/the-friendly-developers-guide-to.html
Здесь мы идем! Сначала мы начнем с файла Robots.txt для веб-сайта Windows Store. http://apps.microsoft.com/robots.txt
Веб-сайты используют robots.txt для того, чтобы направлять искателей веб-страниц о том, как себя вести, что они хотят видеть и чего они не хотят видеть.
Веб-роботы (также известные как Web Wanderers, Crawlers или Spiders) - это программы, которые автоматически перемещаются по Сети. Поисковые системы, такие как Google, используют их для индексации веб-контента, спамеры используют их для сканирования адресов электронной почты, и у них есть много других применений.
В этом случае нам нужен файл индекса Sitemaps.xml. http://apps.microsoft.com/windows/sitemap_index.xml
Файлы Sitemap - это простой способ для веб-мастеров сообщать поисковым системам о страницах на своих сайтах, доступных для обхода. В своей простейшей форме Sitemap представляет собой XML файл, в котором перечислены URL-адреса сайта, а также дополнительные метаданные о каждом URL-адресе (когда он был последним обновлен, как часто он обычно изменяется и насколько он важен, по сравнению с другими URL-адресами на сайте), чтобы поисковые системы могли более разумно сканировать сайт.
Файл индекса Sitemap содержит список каждого файла XML файла Sitemap. На момент написания этой статьи на веб-сайте apps.microsoft.com было 141 отдельный файл XML Sitemap.
Внутри отдельных файлов указаны тысячи URL-адресов веб-страниц приложений Windows Store. Например, этот URL-адрес приложения PlayTo Receiver:
http://apps.microsoft.com/windows/en-us/app/playto-receiver/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e
Эти веб-страницы для приложений включают в себя хорошую информацию, которую мы могли бы очистить от HTML, но мы можем сделать лучше... Ключевой информацией, которую мы получаем здесь, является идентификатор приложения и который географически отображает эти идентификаторы приложения в магазин.
Например:
72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e
и en-us и т.д.
И теперь к хорошему, есть несколько веб-сервисов, которые мы можем назвать, используя нашу недавно найденную информацию о приложении и географию.
Существует много информации, доступной через эту веб-службу, но она явно не указана именами элементов. Вот моя интерпретация многих (не всех) из них, чтобы начать вас.
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 Store больше, чем просто приложений, есть также обзоры и многие из них. В настоящее время в Windows Store просматривается более 210 000 обзоров приложений. Эти обзоры поступают со всего мира, поэтому вам понадобятся коды стран, ваш удобный идентификатор приложения и обратите внимание на pn/1 в конце, вы обнаружите, что эта услуга возвращает только 10 отзывов на страницу, просто увеличивая это значение до pn/2, pn/3 и т.д. до тех пор, пока вы не исчерпаете отзывы.
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", В.Н. "];
Это намного более описательно с именами элементов, поэтому я не вижу необходимости в дальнейшем объяснении этого. Вы можете увидеть полное имя, отображаемое имя, изображение, которое пользователь выбрал для представления.
Далее мы можем немного поработать...
Здесь он снова становится немного загадочным, но к этому времени вы должны привыкнуть к нему. Вы можете получить идентификатор приложения из элемента я и перенести его обратно обратно в службу просмотра f514d64b-8705-43b7-a400-c4f4f3dedfc0
Итак, у вас есть это, основы вытаскивания тонны информации из Windows Store, чтобы вы могли делать то, что вам нравится. Если вы сочтете это полезным и/или сделаете некоторые приложения, использующие эту информацию, имейте дополнительную информацию, чтобы поделиться или иным образом сообщите мне в комментариях.