1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Универсальный чекер апдейтов(текста, цен и т.п.) на страницах с уведомлением в Telegram 2.0

Парсер, который позволяет проверять изменения на разных страницах и получать уведомления в Telegram

Метки:
  1. Support
    Минимальная версия A-Parser:
    1.2.1794
    Данный парсер является миксом идей из этого примера и парсера Rank::CMS Rank::CMS.

    Логика работы
    1. Получение заголовков и содержимого страниц
    2. Применение к данным из п.1 регулярных выражений для получения значений
    3. Сравнение значений с предыдущими и отправка сообщений в случае их отличий

    Парсер работает с двумя файлами:
    • файл признаков files/ValuesChecker/signatures.json
    • SQLite база данных files/ValuesChecker/data.sqlite
    А также формирует результат в виде CSV таблицы. Все файлы автоматически создаются при первом запуске, а signatures.json еще и заполняется примером, который можно использовать для наполнения своими признаками.

    Файл признаков должен быть в виде JSON структуры, где:
    • На первом уровне в качестве имен объектов используются названия доменов.
    • На втором уровне в качестве имен объектов используются названия признаков.
      • Обязательно должен присутствовать объект _title, в котором должны быть значения text (содержащий строку с общим названием страниц) ИЛИ стандартные для прочих объектов третьего уровня regex и mod (содержащие регулярное выражение (важно не забывать об экранировании слэшей и кавычек) и модификаторы для получения названий страниц).
    • На третьем уровне должны присутствовать значения regex и mod, содержащие регулярное выражение и модификаторы для получения искомых значений. Также опционально может присутствовать значение headers: true указывающее искать совпадение в заголовках вместо содержимого страницы.
    Код:
    {
        "rozetka.com.ua": {
            "_title": {
                "regex": "<h1[^>]*>\\s*([^<]+?)\\s*<\\/h1>",
                "mod": "i"
            },
            "price": {
                "regex": "\"price\":\\s*\"([^\"]+)",
                "mod": ""
            },
            "availability": {
                "regex": "\"availability\":\\s*\"(?:https?:\\/\\/schema\\.org\\/)([^\"]+)",
                "mod": "i"
            }
        },
        "olx.ua": {
            "_title": {
                "text": "Пример отслеживания активности автора обьявления"
            },
            "Последний раз на сайте": {
                "regex": "\\\\\"lastSeen\\\\\":\\\\\"([^\\\\\"]+)",
                "mod": ""
            }
        },
        "components.ru": {
            "_title": {
                "regex": "<h1[^>]*>\\s*([^<]+?)\\s*<\\/h1>",
                "mod": "i"
            },
            "Доступно": {
                "regex": "class='j-product_quantity'[^>]*>\\s*(.+?)\\s*<\\/",
                "mod": ""
            },
            "Срок поставки": {
                "regex": "class='j-product_delivery'[^>]*>\\s*(.+?)\\s*<\\/",
                "mod": ""
            }
        },
        "a-parser.com": {
            "_title": {
                "text": "Пример отслеживания изменений в заголовках"
            },
            "Last modified": {
                "headers": true,
                "regex": "last-modified:\\s*(.+)",
                "mod": "i"
            }
        }
    }

    Для работы обязательно нужно указать токен Telegram бота и id чата. Как их получить - описано здесь.
    Также в настройки вынесены опции включения/отключения расширенного лога (полезно при отладке новых признаков) и отображения в Telegram сообщениях превью страниц.

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

    В отправляемых сообщениях содержится ссылка на страницу, название признака, старое и новое значения.
    [​IMG]

    Файл результата содержит данные об успешности каждого запроса:
    [​IMG]

Последние обнoвления

  1. Обновление 2.0