Я сканирую магазин приложений Google. Я использую Firefox + firebug для просмотра запроса и ответа. но один параметр я не понимаю. например: URL-адрес « при загрузке следующей страницы, он отправляет параметр pagTok, значение которого« EgIIKA ==: S: ANO1ljJ4wWQ » Я не знаю, откуда это значение? любой может помочь?Сканирование Google Play магазина
ответ
Исследование
Поскольку Google недавно изменил свой пейджинг логик, и теперь он требует маркера, я нашел себя, пытаясь выяснить, как либо вручную генерировать эти маркера, или скрести их из HTML извлекается при каждом ответе. Итак, давайте соберём руки.
Используя Fiddler2, я смог выделить некоторые образцы токенов, глядя на запросы, выданные для каждого «пейджинга» в Play Маркете.
Вот весь запрос:
POST https://play.google.com/store/search?q=a&c=apps HTTP/1.1
Host: play.google.com
Connection: keep-alive
Content-Length: 123
Origin: https://play.google.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Accept: */*
X-Client-Data: CIe2yQEIpLbJAQiptskBCMG2yQEInobKAQjuiMoBCImSygE=
Referer: https://play.google.com/store/search?q=a&c=apps
Accept-Encoding: gzip, deflate
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2
** Post Body **
start=0&num=0&numChildren=0&pagTok=GAEiAggU%3AS%3AANO1ljLtUJw&ipf=1&xhr=1&token=bH2MlNeViIRJA8dT-zhaKrfNH7Q%3A1420660393029
Теперь, когда мы знаем, что запрос, следующий шаг будет отслеживать несколько запросов, чтобы попытаться изолировать некоторые лексемы логика формирования.
Вот 3 запроса токенов я мог бы найти:
"GAEiAggU% 3AS% 3AANO1ljLtUJw", "GAEiAggo% 3AS% 3AANO1ljIeRQQ", "GAEiAgg8% 3AS% 3AANO1ljIM1CI"
Нахождение Patterns
Одно наш мозг действительно хорош в том, чтобы найти образцы, вот что мое нашел о формировании лексем:
1 - начинается с: «GAEiA»
2 - Далее следуют: два случайных символов
3 - Далее следуют: "% 3AS% 3"
4 - Далее следуют: 11 случайных символов
Браузер уловок Javascript х Руководство пользователя HTTP-запросов
Выполнение одного и того же запроса в браузере в большинстве случаев не приведет к тем же результатам, что и при использовании кода, вручную выдав запрос Http. Зачем ? Из-за Javascript.
Google - это тяжелый пользователь JS, поэтому он будет использовать свои собственные трюки, чтобы попытаться обмануть вас.
Если вы посмотрите на HTML, вы не увидите никакого маркера, который соответствует шаблону, описанному выше, вместо этого, вы найдете что-то вроде:
u0026c\\u003dapps\42,\42GAEiAghQ:S:ANO1ljLxWBY\42,\0420\42,\0420\42,\0420\42]\n
Если вы посмотрите внимательно, вы увидите, что ваш токен находится внутри этой «случайной строки». Все, что вам нужно сделать, это заменить: «: S:» на «% 3AS%».
Регулярные выражения Для Win
Если применить регулярные выражения на страницу, вы сможете найти маркер, и чем вручную заменить: S: строку с% 3AS% один.
Вот один я закончил с использованием (питание от лучших Regex online Builder
сгенерированного регулярное выражение:
/GAEi+.+:S:.{11}\42/
Текстовое значение регулярного выражения:
- Соответствует строке, содержащей Строка GAE
- с последующим символом I 1 или более раз
- с последующим любым символом 1 или более раз
- следуют строки: S:
- с последующим любым символом ровно в 11 раз
- с последующим строка \ 42
TL: DR
токен приходит в го e HTML, но он «замаскирован» Google, что «размазывает» его с помощью Javascript (который можно запускать только в том случае, если вы используете браузерные движки, такие как Selenium или что-то еще).
Чтобы получить страницу pagToken следующей страницы, прочитайте текущую страницу html, очистите ее (логика выше), используйте ее на следующем запросе, повторите.
Я надеюсь, что это помогает, извините о стене текста, я хотел быть как можно более ясно
Ваше объяснение мне очень помогло, спасибо! Я бы предложил дополнительный момент для интеграции. Некоторые случайные строки содержат «** \ u003d **», которые должны быть преобразованы в «** = **». – hata
Похоже, что «: S:» следует заменить на «% 3AS% 3A», а не «% 3AS%». «:» Кодируется как «% 3A». Кроме того, регулярное выражение должно быть /GAEi+.+:S:.{11}\\42/ с дополнительной обратной косой чертой до 42. – MattClimbs
Шляпы на ваше исследование, нашли ли вы какое-нибудь твердое решение? – sumitarora
- 1. Сканирование магазина Google Play
- 2. Google Play ошибка загрузки магазина
- 3. Доступ к Google Play Игры из магазина Google Play
- 4. магазина Google Play проблема с Tapjoy SDK
- 5. Подвеска приложения из магазина Google Play?
- 6. Телефонная книга, как подписать приложение с ключом магазина Google Play
- 7. Отправка приложения в соответствии с правилами магазина Google Play
- 8. Разрешение на использование титана запрещено для магазина Google Play Store
- 9. Удалить приложение из магазина Google Play - неизвестная учетная запись разработчика
- 10. Как экспортировать APK для publich магазина Google Play в затмении
- 11. Как предотвратить андроидное приложение от обновления из магазина Google Play?
- 12. Получите более 250 результатов из запроса магазина Google Play
- 13. Невозможно выделить несколько APK из магазина Google Play правильно
- 14. Значок магазина Google Play не отображается на эмуляторе. android
- 15. Как узнать приложение для Android из магазина Google Play
- 16. Got ошибка в приложении после обновления из магазина Google Play
- 17. Предустановленная работа по обновлению приложения из магазина google play?
- 18. Как проверить версию приложения для магазина Google Play
- 19. Как непосредственно начать загрузку из Play магазина Google
- 20. Распространение приложения для Android за пределами магазина Google Play
- 21. Ошибка сертификата магазина Android Play
- 22. Получите список пользователей, загружающих приложения из магазина Google Play и магазина приложений
- 23. Сканирование Google Scholar
- 24. Извлечь статистику из google play
- 25. Google play alike app opensource
- 26. Карты Google: локатор магазина
- 27. Местоположение Google Google Play
- 28. Ошибка приложения при установке из Play-магазина
- 29. Состояние статуса магазина App Store/Play Store
- 30. Извлеките скриншоты приложения из игрового магазина google
Вы говорите о маркере страницы, которая генерируется в ответ? Лексема страницу помогает получить конкретную страницу результат. – SGC
Сообщите мне, если бы вы смогли это решить. Я все еще пытаюсь понять это, так как это в значительной степени нарушило мой код искателя: github.com/MarcelloLins/GooglePlayAppsCrawler –