Ответы пользователя по тегу Парсинг
  • Как парсить приложение на андройд?

    Ichi
    @Ichi
    Увлекаюсь программированием
    Пример для LDplayer.
    После установки запускается эмулятор.
    То что на экране можно спарсить командой
    ldconsole adb --id 1 --command 'shell uiautomator dump'

    потом копируется файл на локальный компьютер
    ldconseole adb --id 1 --command 'pull /sdcard/window_dump.xml window_dump.xml'

    Файл формата xml. Так же через консоль можно нажимать кнопки, запускать приложения и прочее.
    Ответ написан
    Комментировать
  • Как спарсить данные с сайта?

    Ichi
    @Ichi
    Увлекаюсь программированием
    Если правильно помню, то в цикле можно проверять
    if (!in_array($a->href, ['#USDKZT', '#EURKZT']) ) continue;


    Как вариант использовать внутренние запросы
    <?php
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => 'https://kase.kz/charts/currency/history',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'POST',
      CURLOPT_POSTFIELDS =>'symbol=USDKZT_TOM&resolution=D&from=1658040727&to=1658040727&chart_language_code=ru',
      CURLOPT_HTTPHEADER => array(
        'Accept: */*',
        'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
        'Cookie: __Host-csrftoken=КУКА; ',
        'Referer: https://kase.kz/ru/currency/',
        'X-CSRFToken: ТОКЕН',
        'X-KL-Ajax-Request: Ajax_Request',
        'X-Requested-With: XMLHttpRequest'
      ),
    ));
    
    $response = curl_exec($curl);
    
    curl_close($curl);
    echo $response;


    Правда непонятно, как часто меняются куки и токен, по идее можно делать запрос на получения куки и токена и проверить, когда она "протухнет". Обычно действуют от 1 до 24 часов.
    Payload: symbol=USDKZT_TOM&resolution=D&from=1658040727&to=1658040727
    Время указываем текущие (или диапазон). Если указать одинаковыми:
    {"c": [486.35], "t": [1658102400], "o": [482.0], "v": [131183750], "h": [487.3], "l": [482.0], "s": "ok"}
    Ответ написан
    1 комментарий
  • Не подскажете бот/сервис поиск контента по Телеграм?

    Ichi
    @Ichi
    Увлекаюсь программированием
    Есть боты у некоторых СРМ, но надо добавлять специального бота в админы (это у большинства).

    Мне нужен был поиск по нескольким каналам. Так что я написал парсер для телеграм. Он парсит канал в базу PostgreSQL. А потом можно из базы брать данные и выводить куда-нить. Например, можно выводить пользователей, которые писали определенные слова или репостить.
    Ответ написан
    1 комментарий
  • Как сделать парсинг страницы на сайте?

    Ichi
    @Ichi
    Увлекаюсь программированием
    Довольно простой и глупый вопрос: а зачем заниматься парсингом, если есть оффициальный апи? Он бесплатный, токен получается в кабинете. Ссылка на документацию

    Вот ссылка на биржу ссылка, у меня даже без токена открывается
    Ответ написан
    Комментировать
  • Как спарсить курс доллара сбербанка?

    Ichi
    @Ichi
    Увлекаюсь программированием
    У них даже получение json подзащитой. Тут только через selenium

    Кстати, пока смотрел нашел несколько запросов, которые выдают курс json:
    https://www.sberbank.ru/proxy/services/rates/public/actual?rateType=ERNP-41&isoCodes[]=USD&isoCodes[]=EUR&regionId=038
    https://www.sberbank.ru/proxy/services/rates/public/actual?rateType=ERNP-2&isoCodes[]=USD&isoCodes[]=EUR&regionId=038


    Ещё есть варианты:
    1. Через офф api. Раньше там было через получение токена, но сейчас походу он платный.
    2. Через сторонние сайты, но тут могут быть задержки или неверная информация.
    Ответ написан
    Комментировать
  • Инструмент, который парсит посты из чатов телеграм по ключевым словам. Как?

    Ichi
    @Ichi
    Увлекаюсь программированием
    Я как то делал парсер для нескольких каналов. Так как поиск в телеграм работает через одно место. Попробовать можно через него.
    Ссылка на гит
    Ответ написан
    1 комментарий
  • Настройка datacol не парсит картинки и нформацию с вкладки сайта. Как подобрать правильное Xpath выражение?

    Ichi
    @Ichi
    Увлекаюсь программированием
    Судя по коду сайту - картинки грузятся позже с помощью js. Поэтому при запросе их банально ещё нет.

    Можно парсить JS. На странице есть код:
    setimage: function setimage() {
    				var litpicList = "/upload/1/article/1592963023206.jpg|/upload/1/article/1592977873403.jpg|/upload/1/article/1592977873590.jpg|/upload/1/article/1592977873762.png" 
    				var images = new Array();


    То есть можно найти на странице регулярков вида regex = /var litpicList = "(.*)"/gm;
    Где и будет список картинок с разделителем |
    Ответ написан
    Комментировать
  • Как парсить динамические сайты типа dns-shop?

    Ichi
    @Ichi
    Увлекаюсь программированием
    У ДНС хорошая защита от парсинга. При чем некоторые json ответы на запросы можно получить только через браузер.

    Для начала можно составить список всех товаров. Ссылки на товары можно взять из карты сайта https://www.dns-shop.ru/sitemap.xml

    Там вроде получается около 600к ссылок. Смартфоны потом ищутся банально по слову smartphone в ссылке

    Далее через селениум парсятся сами страницы.

    По идее можно парсить только данные от микроразметки, например,
    https://www.dns-shop.ru/product/microdata/d5635852...
    Тут есть данные бренда, названия, цены, рейтинга. Проблема только получения этих uuid товаров

    И да, сразу предупреждаю, скрипты ДНС отслеживают роботов. И если что, сразу банят ip адреса (возможно даже подсеть). Так что много запросов с одного ip делать нельзя.
    Ответ написан
  • Как спарсить ozon средствами PHP?

    Ichi
    @Ichi
    Увлекаюсь программированием
    Могу посоветовать попробовать пакет spatie/crawler, который используется для обхода ссылок на сайте. Сам Spatie его использует для составления карты сайты через парсинг сайта. Если правильно помню, он работает через js (так как можно ему отправлять js код на выполнение).

    Когда пытался спарсить некоторые данные с определенного сайта, тоже столкнулся с проблемой - там сайт грузится постфактум через js с проверкой, что это человек. Я использую Python-Selenium-WebDriver. А на этот пакет наткнулся уже позже и не проверял его.
    Ответ написан
    Комментировать