artmirarmi
3.04.2018 - 10:52
Здравствуйте, есть сайт в котором котором изначально происходит загрузка страницы, а потом с помощью js загружаютсся данные на страницу. Если просмотреть исходный код страницы, то данных там нет. Понятно, что они подгружаются динамически и уже на клиентской стороне.
Помогите решить эту проблему и спарсить сайт
Вот ссылка на сам сайт
https://edadeal.ru/magnitogorsk/offers
vagrand
3.04.2018 - 12:51
Хех, вот жеж люди, мало того, что тырят чужую инфу, так еще и хотят чтобы кто-то научил их это делать
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
walerus
3.04.2018 - 15:03
vagrand Ну почему же тырят?, она в свободном доступе... может ТС просто аналитик и ведет для себя скромную статистику
По сайту - там обкурка еще та
"в лоб" решать не получится.
будет стоить очень дорого. там все закодировано. глянул - декодер так и не нашел.
vagrand
3.04.2018 - 23:20
depp
Там просто gzip-ом сжато
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
sergeiss
4.04.2018 - 01:00
Цитата (artmirarmi @ 3.04.2018 - 10:52) |
Если просмотреть исходный код страницы, то данных там нет. Понятно, что они подгружаются динамически и уже на клиентской стороне.
Помогите решить эту проблему и спарсить сайт |
Для этого можно использовать "безоконный браузер". Например, PhantomJS. Только учти, что его поддержка прекращена
Сейчас гугл на базе своего хрома сделал подобную штуковину, т.е. безоконный браузер. Это та вещь, которую можно запустить на стороне браузера, загрузить туда страницу, позволить отработать аяксу и загрузить все данные, прорисовать их с помощью jQuery, Реакта.... Короче говоря, полностью всё отрабатывает так, как в обычном браузере - но на стороне сервера. И полученный результат можно прочитать. Например, распарсить что-либо.
Насчет окончания поддержки ФантомДжиЭс. Это было сказано на декабрьской конференции Holy JS. Я там не был, но записи выступлений смотрел/слушал.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss
проще плагин написать для того же гугл хром.
vagrand
4.04.2018 - 18:54
sergeiss
depp
От вы любители пойти в обход.
Там после загрузки страницы выполняется всего лишь ajax запрос. Т.е. тупо надо его в инструментах разработчика посмотреть и самому составить такой же.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
sergeiss
4.04.2018 - 19:00
vagrand, я не вникал в сайт по ссылке, а ответил на вопрос
В частном случае, если там всего один запрос, то да, проще будет как ты сказал.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
vagrand
а я вникал. там есть ключевое слово, которое необходимо для декода. где там gzip - я не нашел. там обычный base64 идет. для его нормального преобразования нужно подгружать с их же сервера кодовое слово.
Заголовок content-type: application/x-protobuf намекает нам, что там
protobuf.
_____________
Чатик в телеге
vagrand
5.04.2018 - 12:35
depp
Цитата |
там обычный base64 идет. для его нормального преобразования нужно подгружать с их же сервера кодовое слово. |
Вот уж не знаю где же вы нашли там base64, но даже если и так, то для декорирования строки base64 не нужны никакие кодовые слова. Вы сильно путаете кодирование и шифрование. Та даже в функции base64_decode() нет никаких параметров для передачи ключевых слов.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
killer8080
5.04.2018 - 13:26
Можно сделать вывод, что
protobuf значительно повышает порог вхождения парсингистов
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.