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

Запрос на основе строки из файла по условию

Тема в разделе "Техническая поддержка", создана пользователем aquatell, 18 сен 2018.

  1. aquatell

    aquatell A-Parser Pro License
    A-Parser Pro

    Регистрация:
    8 ноя 2012
    Сообщения:
    150
    Симпатии:
    43
    Здравствуйте,
    На выходе есть файл check.csv в не 100 000 строк, файл уже один раз обработался а-парсером.
    Но среди него есть порядка 10 000 строк где есть незаполненные поля со значением NONE или во все пустые.
    Подскажите как этот же файл 100 000 строк прогнать повторно, но чтобы обрабатывались только эти 10 000 строк, как то чтобы а-парсер увидел пустые ячейки или со значением NONE.
    Заранее благодарен
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.546
    Симпатии:
    2.163
    Добрый день.
    Раз это CSV, то наверное проще всего отсортировать/отфильтровать пустые в Excel и подать их отдельным файлом на вход в А-Парсер.
     
    aquatell нравится это.
  3. aquatell

    aquatell A-Parser Pro License
    A-Parser Pro

    Регистрация:
    8 ноя 2012
    Сообщения:
    150
    Симпатии:
    43
    Я про это думал, но мне нужно сохранить последовательность строк, именно в таком виде в каком есть. В файле всего 10 колонок. Каждую я загоняю в переменную $query.var1 и т.д.
    Может можно как то по условию сделать?
     
  4. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.546
    Симпатии:
    2.163
    Добавьте еще одну колонку, в которой пронумеруйте строки. Дальше все, как я писал выше, плюс выводите в результат номер строки. Потом соедините с основным файлом и отсортируйте по номеру. Получится та же последовательность, что и была.

    Либо же можно использовать шаблонизатор в формате запроса и прописать условие, которое в зависимости от содержимого нужных колонок, возвращало бы запрос или пустоту (для тех запросов, которые не нужно парсить). Пустые запросы парсер будет считать неудачными, это нормально. В результат выводите данные, в зависимости от удачности запроса (либо на основании содержимого колонок):
    - если запрос неудачный (либо остальные колонки не пустые), то выводим то, что пришло на вход: $query.var1,$query.var3,$query.var3...
    - если удачный (либо если остальные колонки пришли на вход пустые) - то выводите спаршенные данные.
    Но из-за многопоточности строки все равно перемешаются, разве что нужно парсить в 1 поток.
     
    aquatell нравится это.
  5. Fyn Oleg

    Fyn Oleg A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    21 апр 2015
    Сообщения:
    23
    Симпатии:
    7
    Можно на примере?

    У меня допустим, страница всегда возвращает 200ок, но в зависимости от (IP+UA) я получаю либо <h1>You are robots?</h1> или <h1>Good</h1>
    Не понимаю как обучить a-parser считать запрос успешным или нет.
     
  6. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.546
    Симпатии:
    2.163
    Это решается с помощью Check content
    Укажите регулярное выражение, которое сработает на нужной странице и не сработает на любых других
     
    Fyn Oleg нравится это.

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