как парсить данные с сайта? [web разработка]

Discussion in 'Болталка' started by UniqueUser, 14 Mar 2020.

  1. UniqueUser

    UniqueUser New Member

    Joined:
    14 Mar 2020
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    если не там разместил перенесите в нужны раздел где этот пост увидят веб мастера:

    есть сайт где посредствам AJAX обновляются интерисующие меня значения ( курсы валют, погода, коэфициенты без рзницы ) ... тоесть сама страница статична без перезагрузки меняет какие то данные. Мне надо эти данные спарсить но не просто спарсить а постоянно получать актуальные значения. Естесственно, делать запрос на получение всей HTML страницы не резон, меня быстро вычислят забанят и на сервер ихний большая будет нагрузка.
    ПОдскажите как определить откуда сайт берет данные и как максимально верно эти данные перехватывать ну или парсить.
    Прошу воздержаться от постов в которых вы с умным видом укажите название проги, программок я сам знаю не мало, буду рад статье или детальному описанию методик. спасибо.
     
    people2people likes this.
  2. ckpunmkug

    ckpunmkug Member

    Joined:
    20 Mar 2017
    Messages:
    69
    Likes Received:
    67
    Reputations:
    10
    На самом деле перехватывать XHR и Fetch запросы довольно просто.

    Берём chromium, открываем DevTools, переходим на вкладку Network, включаем XHR.
    Загружаем страницу и смотрим как AJAX передаёт данные.
    Конечно они могут обмениваться через websocket, тогда вместо XHR включаем WS.

    Вряд ли разрабы будут обсфуцировать обмен данными между браузером и сервером. Так что смотрите разбирайтесь.

    После того как разобрались в принципах обмена данными, берёте в php http wrapper и моделируете обмен сообщениями, обратите внимание что может понадобится модификация HTTP request header, например указать Referer.

    PS: Есть ещё сложный вариант, реверснуть скрипты на сайте, вырезать получателей данных и запустить их на nodejs
    PPS: Но есть и лёгкий, при условии что сайт периодически обновляет на странице данные, сделать extension который внедрёным в страницу скриптом будет вытаскивать данные из html elements внутри которых эти данные помещаются. Всё это дело можно запустить в headless mode на серваке.
     
    #2 ckpunmkug, 15 Mar 2020
    Last edited: 15 Mar 2020
  3. UniqueUser

    UniqueUser New Member

    Joined:
    14 Mar 2020
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    меня интерисуют букмейкеры ( любые)
    и там не все так просто... запросы в DevTools я вижу, но я не вижу там то, что мне интересно.
    можно с тобой обсудить это по телеге? чисто пара вопросов конкретных
     
  4. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,096
    Likes Received:
    8,426
    Reputations:
    25
    Тимошкин А. П.пойдет ? Написал нечто "Ницше в России"
     
  5. ckpunmkug

    ckpunmkug Member

    Joined:
    20 Mar 2017
    Messages:
    69
    Likes Received:
    67
    Reputations:
    10
    Не видишь, потому что данные скорее всего в base64. Например laravel на бэкенде принимает
    Code:
    $payload = json_decode(base64_decode($payload), true);
    Пиши свою телегу в ПМ или найди ckpunmkug. Поговорим.