Остановка парсинга при ошибке

Тема в разделе "Решение проблем с использованием программы", создана пользователем Demontager, 27 ноя 2015.

  1. Demontager

    Demontager New Member Пользователи

    Регистрация:
    22 сен 2012
    Сообщения:
    16
    Возможно ли остановить парсинг автоматически если обнаружиться что произошла ошибка в запросе <PHP_SCRIPT> ?
    Конкретно такая возможность нужна при переводе с api, там ключ дается на 1 000 000 символов в сутки и когда лимит исчерпывается, то соответственно ничего не получаем. В логе пишет Socket Error 0
    Так можно было бы прописать другой ключ и продолжить парсинг с того места где произошла ошибка.
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Действуйте по такой схеме Ссылки недоступны для гостей

    Совместное использование макросов [WAITFORME] и [CHECKENTRY]

    С уважением к вам, Сергей...
     
  3. Demontager

    Demontager New Member Пользователи

    Регистрация:
    22 сен 2012
    Сообщения:
    16
    Попробую. Еще тогда один похожий вопрос. Как можно не загружать документ если в границе парсинга присутствует определенный текст или символ ?
    К примеру ситуация - при парсинге картинок обнаруживается что к некоторым из них добавляется какой-то class, alt и т.д свойства, у других нет.
    Смотрел в помощи эту тему Ссылки недоступны для гостей но там нет такого чтобы документ не парсить при наличии символа.
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Используйте инструмент shift+ctrl+f
     
  5. Demontager

    Demontager New Member Пользователи

    Регистрация:
    22 сен 2012
    Сообщения:
    16
    По поводу первого вопроса, может как-то можно проверять сохранилось ли вообще что-то с границы ? К примеру может быть так, если граница найдена, но при сохранении в ней ничего не оказалось, останавливать парсинг.
    Или как вы написали, проверить на вхождение часть блока где происходит перевод. Но как ? В круглых скобках по идеи должно быть пусто, так как скрипт ничего не возвращает, но так все равно продолжает парсить и сохранять.
    [CHECKENTRY()][THENTEXT][WAITFORME]<PHP_SCRIPT=https://translate.yandex.net/api/v1.5/tr.json/translate?key=API_KEY&format=html&lang=en[UTF-8]>text=[DATAENCODE]<CD_GRAN_7!>[/DATAENCODE]</PHP_SCRIPT>[/CHECKENTRY]

    В проекте проверяемый переводимый блок указан как <!--|Текст статьи|!--> Ключ уже не работает, и API выдает Socket Error #0
     

    Вложения:

    Последнее редактирование: 27 ноя 2015
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Попробуйте использовать макрос [WAITFORME] в связке с макросом [IFNIL2]:
    Если текст пустой, будет выведен текст 2
    С уважением к вам, Сергей.
     

    Вложения:

Поделиться этой страницей