Обработка данных PHP скриптом при парсинге

Тема в разделе "Решение различных задач по парсингу", создана пользователем vanred79, 31 окт 2021.

  1. vanred79

    vanred79 Member Пользователи

    Регистрация:
    17 фев 2017
    Сообщения:
    86
    Здравствуйте! Задача такая, нужно получив с границ парсинга url запустить такой php код:
    $page = 'Ссылки недоступны для гостей
    $data = file_get_contents($page);
    //echo $data;

    $pattern='#<h1>.+?/"#s';
    preg_match($pattern,$data,$matches);

    $str=strpos($matches[0], "</h1>");
    $adr=substr($matches[0], 0, $str);

    $adr = preg_replace ('/\s+/', ' ', $adr ) ;
    $adr = str_replace('<h1> ', '', $adr);

    и получив $adr отобразить ее в результатах элемента. Проще говоря, нужно забрать данные с другого сайта при парсинге с помощью php. Подскажите пожалуйста, как это лучше реализовать, с помощью каких команд? Ссылку на мануал скиньте пожалуйста
     
  2. Root

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

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

    Ссылки недоступны для гостей
     
    vanred79 нравится это.
  3. Al195

    Al195 Member Пользователи

    Регистрация:
    19 окт 2021
    Сообщения:
    42
    Здравствуйте!
    подключил к шаблону обработку данных PHP скриптом при парсинге (делаю запрос по одному из полей)
    теперь проект начал сохранятся в два файла, отключаю и без обработки PHP выгружает и переименовывает [DOCNAME] правильно
    в чем может быть причина ?
    в начале пишет в prod csv из DOCNAME
    далее создает и продолжает запись в article_all_1.csv
     
  4. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Скорее всего при парсинге некоторых WEB документов DOCNAME в вашем проекте по какой-то причине не срабатывает (нарушается его синтаксис).

    Сотрите лог выполнения функций и макросов (в нижней части окна предпросмотра результатов парсинга контента), а также все изменения кода в нем.
     
  5. Al195

    Al195 Member Пользователи

    Регистрация:
    19 окт 2021
    Сообщения:
    42
    Да, убрал DOCNAME
    получил запись в один файл article_all_1.csv
    посоветуйте пожалуйста как обойти DOCNAME, нужно уникальное имя файла для последующей обработки данных
    лог посмотрел
    без каких либо причин открывает запись во второй файл
     
  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Причины есть.

    Приложите ваш файл проекта с DOCNAME
     
  7. Al195

    Al195 Member Пользователи

    Регистрация:
    19 окт 2021
    Сообщения:
    42
    Проверьте пожалуйста
    ссылки получаю инструментом разделения xml
     
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вы разместили макрос [DOCNAME] с макросом для фильтрации строк [MUSTBEINLINE] на одной и той же строке. Вот в части случаев строки с [DOCNAME] и удаляются.
     
  9. Al195

    Al195 Member Пользователи

    Регистрация:
    19 окт 2021
    Сообщения:
    42
    Спасибо, что проверили и нашли ошибку!!!
    как их работу можно совместить или чем заменить по логике
    Очистка строк по товарам у которых нет данных, это нужно
    вопрос как и когда правильно переименовать файл выгрузки?
     
  10. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Разместите макрос [DOCNAME] на отдельной строке, чтобы макрос фильтрации строк не удалял строку с [DOCNAME].

    Поместите символ переноса строки, нажав Enter.
     
  11. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    <CD_CYCLE_GRAN_1!>
    [DOCNAME]prod-related.csv[/DOCNAME]
     
  12. Al195

    Al195 Member Пользователи

    Регистрация:
    19 окт 2021
    Сообщения:
    42
    Прекрасно!!! отработал без ошибок,
    спасибо за оперативную помощь!
    [DOCNAME] лучше всегда переносить на отдельную строку? или только в связке с [MUSTBEINLINE].
     
    Последнее редактирование: 1 ноя 2021

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