За последние 24 часа нас посетили 38026 программистов и 1811 роботов. Сейчас ищут 898 программистов ...

Написание скрипта который заполняет форму

Тема в разделе "PHP для новичков", создана пользователем dich40000, 9 июн 2015.

  1. dich40000

    dich40000 Активный пользователь

    С нами с:
    9 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    Ребята, всем привет!
    Раньше не сталкивался с таким, но хочу сделать.

    Суть вот в чем. Необходимо написать скрипт который будет заходить в кабинет на сайте и парсить от туда некоторые данные, а затем сравнивать их с другими данными.

    Простой пример:
    -Скрипт заходит на сайт site.com
    -Вводит в форму логин и пароль
    -Парсит div с id="name"
    -Полученные данные сохраняет в базу данных и сравнивает с имеющейся таблицей

    Подскажите пожалуйста как такое реализовать, каким образом, на каком языке (ява, php).

    Интересует именно как скрипт будет переходить на сайт, заполнять форму (как сделал бы это человек, заполнил и нажал enter после заполнения).
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    какими познаниями располагаем?
    что за сайт? посторонний или твой?
    какая конечная цель?
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А мну всегда доставляют эти человеки-парсеры на пхп, с курлами и регекспами. Есть же фантомжс и даже обертки для него, но нет же, продолжают жрать кактус. Собсно, так им и надо )
     
  4. dich40000

    dich40000 Активный пользователь

    С нами с:
    9 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    VLK. html, php знаем, яваскрипт и аякс ниже среднего, MySQL естественно знаю.

    Сайт не мой, но в нем есть мой личный кабинет, в котором хранятся мои данные, которые периодически меняются.
    Цель создать таблицу, базу данных в которую посредством парсинга страницы будут вноситься данные с моего аккаунт с того сайта. (данные - даты, названия файлов).

    Делаю эти операцию вручную постоянно (копирование данных в таблицу), хочется, чтобы за меня делал это скрипт.

    Добавлено спустя 1 минуту 21 секунду:
    Romach, можно подробнее, что за фантомжс?
     
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    https://github.com/segmentio/nightmare

    К примеру, вот так можно сделать скрин личных сообщений на этом форуме:

    Код (PHP):
    1. var Nightmare = require('nightmare');
    2. var nightmare = new Nightmare({
    3.     timeout: 2000
    4. });
    5. nightmare
    6.     .goto('http://php.ru/forum/ucp.php?mode=login')
    7.     .type('input[name="username"]', 'romach')
    8.     .type('input[name="password"]', '***')
    9.     .check('input[name="autologin"]')
    10.     .click('input[name="login"]')
    11.     .wait()
    12.     .goto('http://php.ru/forum/ucp.php?i=pm&folder=inbox')
    13.     .screenshot("inbox.png")
    14.     .run(function(err, nightmare){
    15.         console.log('Done.');
    16.     });
    Правда я не уверен что подобная штука заведется под виндой, на маках и линуксах работает нормально. На обычных хостингах скорее всего тоже ничего не выйдет.

    з.ы. Сурикат, не бань мну ))
     
  6. dich40000

    dich40000 Активный пользователь

    С нами с:
    9 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    Romach, винду не юзаешь?
    Хостеры должны знать поддерживается ли у них фантомжс?
    Пользуюсь http://www.besthosting.ua вроде продвинутый.
     
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Я не фанат линуксов, просто для разработки он удобнее, больше инструментов, удобнее пользоваться и одинаковое с большинством хостингов окружение. А хостинг может и продвинутый, но тут не в этом дело. Большинство ориентируется на php-стэк, а тут нужен установленный nodejs и phantomjs, если с первым ещё нормально, то со вторым проблема.

    Обычно для таких вещей идут на Digital Ocean за vds по 5 баксов, разворачивают там убунту/дебиан/центос, ставят что нужно и работают. Если с английским нормально, то на DO есть куча инструкций и даже готовые сборки с нодой.

    Сходу может показаться сложным, но если реально надо, то лучше потратить день на изучение, чем утонуть в куче регекспов, кук и прочих курлов )
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    я вообще изначально думал что не важно чем надо решать эту проблему, по этому хотел посоветовать C# там есть достаточно адекватные решения, но если интересует РНР, я порылся в интернете, там есть некоторые решения через curl, короче набери в поисковике php авторизация на удаленном сайте.