Ребята, всем привет! Раньше не сталкивался с таким, но хочу сделать. Суть вот в чем. Необходимо написать скрипт который будет заходить в кабинет на сайте и парсить от туда некоторые данные, а затем сравнивать их с другими данными. Простой пример: -Скрипт заходит на сайт site.com -Вводит в форму логин и пароль -Парсит div с id="name" -Полученные данные сохраняет в базу данных и сравнивает с имеющейся таблицей Подскажите пожалуйста как такое реализовать, каким образом, на каком языке (ява, php). Интересует именно как скрипт будет переходить на сайт, заполнять форму (как сделал бы это человек, заполнил и нажал enter после заполнения).
А мну всегда доставляют эти человеки-парсеры на пхп, с курлами и регекспами. Есть же фантомжс и даже обертки для него, но нет же, продолжают жрать кактус. Собсно, так им и надо )
VLK. html, php знаем, яваскрипт и аякс ниже среднего, MySQL естественно знаю. Сайт не мой, но в нем есть мой личный кабинет, в котором хранятся мои данные, которые периодически меняются. Цель создать таблицу, базу данных в которую посредством парсинга страницы будут вноситься данные с моего аккаунт с того сайта. (данные - даты, названия файлов). Делаю эти операцию вручную постоянно (копирование данных в таблицу), хочется, чтобы за меня делал это скрипт. Добавлено спустя 1 минуту 21 секунду: Romach, можно подробнее, что за фантомжс?
https://github.com/segmentio/nightmare К примеру, вот так можно сделать скрин личных сообщений на этом форуме: Код (PHP): var Nightmare = require('nightmare'); var nightmare = new Nightmare({ timeout: 2000 }); nightmare .goto('http://php.ru/forum/ucp.php?mode=login') .type('input[name="username"]', 'romach') .type('input[name="password"]', '***') .check('input[name="autologin"]') .click('input[name="login"]') .wait() .goto('http://php.ru/forum/ucp.php?i=pm&folder=inbox') .screenshot("inbox.png") .run(function(err, nightmare){ console.log('Done.'); }); Правда я не уверен что подобная штука заведется под виндой, на маках и линуксах работает нормально. На обычных хостингах скорее всего тоже ничего не выйдет. з.ы. Сурикат, не бань мну ))
Romach, винду не юзаешь? Хостеры должны знать поддерживается ли у них фантомжс? Пользуюсь http://www.besthosting.ua вроде продвинутый.
Я не фанат линуксов, просто для разработки он удобнее, больше инструментов, удобнее пользоваться и одинаковое с большинством хостингов окружение. А хостинг может и продвинутый, но тут не в этом дело. Большинство ориентируется на php-стэк, а тут нужен установленный nodejs и phantomjs, если с первым ещё нормально, то со вторым проблема. Обычно для таких вещей идут на Digital Ocean за vds по 5 баксов, разворачивают там убунту/дебиан/центос, ставят что нужно и работают. Если с английским нормально, то на DO есть куча инструкций и даже готовые сборки с нодой. Сходу может показаться сложным, но если реально надо, то лучше потратить день на изучение, чем утонуть в куче регекспов, кук и прочих курлов )
я вообще изначально думал что не важно чем надо решать эту проблему, по этому хотел посоветовать C# там есть достаточно адекватные решения, но если интересует РНР, я порылся в интернете, там есть некоторые решения через curl, короче набери в поисковике php авторизация на удаленном сайте.