Как получить топ 400 списков из iTunes
Как получить 400 лучших (или более) списков приложений из iTunes? Мне нужны лучшие платные, бесплатные и кассовые списки для каждой категории и в целом.
Я знаю, что rss-канал существует, в https://rss.itunes.apple.com/ но это дает вам только топ-200. Тем не менее, такие сайты, как AppFigures и AppAnnie, содержат списки лучших 400 или 500, а приложения в app store покажут вам лучшие 400.
Я попробовал канал EPF, таблица популярности имеет только двадцать строк на нем, и из других форумы похоже, что этот канал был недоступен в течение нескольких месяцев, и он не обновляется так часто, как эти другие сайты, кажется, в любом случае.
Я ищу решение непосредственно от Apple, а не через третью сторону. Я на 99% уверен, что Apple предоставляет эти данные ежечасно, но я не знаю конечной точки.
3 ответов:
Вот как вы это делаете.... вы можете нажать на URL следующим образом и предоставить агент пользователя iOS5.
_IOS_DEEP_RANK_URL_BASE = 'https://itunes.apple.com/WebObjects/MZStore.woa/wa/topChartFragmentData?genreId=%s&popId=%s&pageNumbers=%d&pageSize=%d' _IOS_DEEP_RANK_USERAGENT = 'iTunes-iPad/5.1.1 (64GB; dt:28)'Вам также нужно установить фронт магазина, основываясь на том, какую страну вы хотите.
"X-Apple-Store-Front: 143441-1,9"
Обновление 12 октября 2015 : по данным службы поддержки разработчиков Apple от 9 октября 2015 года проблема была решена.
RSS-каналы действительно в настоящее время ограничены 200 результатами (хотя в прошлом они были установлены на максимум 400),
Что касается EPF relational - некоторые службы (например, Chomp) полагались на него в прошлом. Я не уверен в его текущем состоянии, но если вы пытались использовать его, убедитесь, что вы получаете полный еженедельный выпуск (который должен быть в размере диапазон более 5 ГБС), а не просто инкрементный релиз. Может быть, именно поэтому вы получаете всего несколько строк?
В настоящее время я не знаю других способов получить эту информацию непосредственно от Apple. Вы можете попробовать бесплатный сервис из f6s или использовать API, предоставляемый другим платным сервисом.
Обновление-получен отзыв Apple :
Это интересная тема для меня, поэтому я связался с Apple вчера и спросил их, есть ли какой-либо способ получить эти данные непосредственно из их. Сегодня утром я получил отзыв о доступности данных диаграммы от партнерской команды iTunes в Apple. Они подтвердили ограничения RSS-канала, а также сказали следующее по вопросу EPF:
Если вы являетесь партнером, вы можете заглянуть в EPF Relational, чтобы разработать свои собственные результаты поиска.
EPF представляет собой многогигабайтную загрузку полного набора метаданные из iTunes Store, App Store и Mac App Store. EPF-это доступно для филиалы, чтобы полностью включить аспекты iTunes и каталоги App Store в веб-сайт или приложение. Этот инструмент предназначен только для технически подкованные филиалы и знание настройки реляционных баз данных-это требуемый. Apple не будет предоставлять техническую поддержку для настройки или поддержание этого инструмента.
ЭПФ доступ только для утвержденных партнерская программа полиграфисты. Более подробную информацию о EPF можно найти на сайте Страница документации канала корпоративного партнера. Обзор документация найденный там, и если вы хотите получить доступ к EPF, предоставьте следующая информация: ...
При дальнейшем изучении технической документации ERPF я обнаружил, что одна из таблиц базы данных содержит топ-1000 приложений по жанрам:
Итак, вы должны сначала импортировать данные в свою собственную базу данных, начиная с еженедельного (многогигабайтного) выпуска, а затем применять любые ежедневные (многомегабайтные) обновления. доступен с момента еженедельного выпуска. Согласно Apple, разница между ними составляет:
Режимы Подачи
ITunes генерирует данные EPF в двух режимах:
Полный режим
Инкрементный режим
Полный экспорт генерируется еженедельно и содержит полный снимок метаданных iTunes по состоянию на день поколение. Инкрементный экспорт генерируется ежедневно и содержит записи, которые были добавлены или изменено с момента последнего полного экспорта. Инкрементный экспорт расположен относительно полного экспорта на на чем они и основаны.
При условии, что вы импортировали данные в реляционную базу данных, вы должны быть в состоянии получить необходимые данные с помощью простого оператора
SELECT, подобного этому:SELECT application.title, applicationpopularityper_genre.application_rank FROM applicationpopularityper_genre JOIN application ON application.application_id = applicationpopularityper_genre.application_id WHERE applicationpopularityper_genre.genreid = XX ORDER BY applicationpopularityper_genre.application_rank ASC;Что касается ежечасных обновлений-глядя на реляционную структуру, я вижу, что столбец
export_dateдоступен. Вы должны проверить, если вы получаете несколько дат для каждого приложения, когда выполнение выбора выше - если вы это сделаете, у вас будут данные с более тонкой детализацией, чем за день. Если нет (что более вероятно), и это dealbreaker для вас, вы должны посмотреть на использование услуг Appannie и других, которые я уже предложил, которые обогащают эти данные данными, которые они получают от разработчиков через itunes connect. Если вы хотите получить информацию бесплатно, вы можете попробовать наскрести из Appannie (есть некоторые бесплатные инструменты , которые делают это, но вы должны знать, что это может быть не очень надежный в долгосрочной перспективе, так что вам, возможно, будет лучше платить);Обновление 2:
Партнерская команда ITunes подтвердила, что они знают о проблеме с этой таблицей.
Надеюсь, это ответ на ваш вопрос.
Было выскабливание данных из AppAnnie будет хорошо?
Использовал phantomjs и casperjs, чтобы очистить топ-500 бесплатных, платных и кассовых.
- Установите phantomjs и casperjs в вашей системе
- в терминале: casperjs appAnnieTop500Scraper.js
Образец Вывода
Free Apps 500 apps found: // not shown: app names in json array format // json array on file: freeTop500.json Paid Apps 500 apps found: // not shown: app names in json array format // json array on file: paidTop500.json Grossing Apps 500 apps found: // not shown: app names in json array format // json array on file: grossingTop500.jsonAppAnnieTop500Scraper.js
var free = []; var paid = []; var grossing = []; var FREE_COLUMN_INDEX = 1; var PAID_COLUMN_INDEX = 2; var GROSSING_COLUMN_INDEX = 3; var fs = require('fs'); var casper = require('casper').create(); casper.on("click", function() { this.echo(); }); casper.on("page.error", function() { this.echo(); }); function getAppListScraper(columnIndex) { var selector = document.querySelectorAll('tbody#storestats-top-table tr td:nth-child(' + columnIndex + ') div.item-info div.main-info span.title-info'); return Array.prototype.map.call(selector, function(e) { return e.getAttribute('title'); }); } function printToConsole(casper, appList) { casper.echo(appList.length + ' apps found:'); casper.echo(JSON.stringify(appList)); } function writeToFile(fileName, content) { fs.write(fileName, content, 'w'); } casper.start('https://www.appannie.com/apps/ios/top/?device=iphone', function() { // click load all button to load 500 apps list this.click('div#load-more-box span.btn-load p a.load-all'); // wait 5000ms for the apps list to load then scrape it this.wait(5000, function() { free = this.evaluate(getAppListScraper, FREE_COLUMN_INDEX); paid = this.evaluate(getAppListScraper, PAID_COLUMN_INDEX); grossing = this.evaluate(getAppListScraper, GROSSING_COLUMN_INDEX); }); }); casper.run(function() { this.echo('Free Apps'); printToConsole(this, free); writeToFile("freeTop500.json", JSON.stringify(free)); this.echo('Paid Apps'); printToConsole(this, paid); writeToFile("paidTop500.json", JSON.stringify(paid)); this.echo('Grossing Apps'); printToConsole(this, grossing); writeToFile("grossingTop500.json", JSON.stringify(grossing)); this.exit(); });

Comments