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

Как сохранять результаты парсинга в 1 строке ?

Тема в разделе "Техническая поддержка", создана пользователем yadzha, 6 авг 2013.

  1. yadzha

    yadzha A-Parser Pro License
    A-Parser Pro

    Регистрация:
    18 июн 2013
    Сообщения:
    68
    Симпатии:
    6
    Частенько попадаются сайты, где нужная информация в html коде странички находится на отдельной строке между неуникальными тегами. Например, имеем такой кусок кода:
    Код:
    <tr>
        <td class="lightbg">Телефон:</td>
        <td class="lightbg">&nbsp;<b>(3822)63-31-39</b></td>
    </tr>
    <tr>
        <td class="lightbg">Мобильный:</td>
        <td class="lightbg">&nbsp;<b>8-952-803-14-22</b></td>
    </tr>
    Как построить регулярку, чтобы телефоны сохранились в одной строке?
    Сейчас делаю таким образом:

    Код:
    Parse Custom Result :  Телефон:</td>(.*?)</b>
    Parse Custom Result :  Мобильный:</td>(.*?)</b>
    В результате, в текстовом файле телефоны сохраняются в двух строчках вместе с куском html кода:

    Код:
    <td class="lightbg">&nbsp;<b>(3822)63-31-39
    <td class="lightbg">&nbsp;<b>8-952-803-14-22
    Приходится потом чистить файл и другим скриптом перезаписывать записи в одну строку. Возможно ли сразу средствами A-Parser'а сохранять подобные записи в одну строку без кусков кода ?
     
  2. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.337
    Симпатии:
    1.794
    ты видимо сам указываешь лишний перенос через Result format, если первый сохранять к примеру в {phone1} а второй в {phone2}, то формат вывода должен быть примерно такой:
    {phone1} {phone2}\n

    ну а какую информацию захватывать целиком зависит от того как ты составил регулярку:
    Код:
    Телефон:</td>.*?<b>(.*?)</b>
    с флагом s захватит только телефон
     
  3. yadzha

    yadzha A-Parser Pro License
    A-Parser Pro

    Регистрация:
    18 июн 2013
    Сообщения:
    68
    Симпатии:
    6
    Еще вопрос подобного рода. Имеется код:

    Код:
    <div class="b-company-info__label">Адрес:</div>
                        ул. Восстания, д.100,
                        Казань,
                        420095,
                        Россия
                </li>
    Как настроить регулярку таким образом, чтобы адрес сохранялся в одну строку?
     
  4. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.337
    Симпатии:
    1.794
    После парсинга к результату можно применять регулярку заменяющую переводы строк на ничего:
    [​IMG]
     
  5. yadzha

    yadzha A-Parser Pro License
    A-Parser Pro

    Регистрация:
    18 июн 2013
    Сообщения:
    68
    Симпатии:
    6
    А как такое же сделать для парсера NET::HTTP?

    [​IMG]
     
  6. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.337
    Симпатии:
    1.794
    Точно так же, только Result builder не доступен в тесте, т.е. это надо делать непосредственно в Add task
     
  7. S10n4eg

    S10n4eg A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    26 авг 2013
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте,а подскажите что мне сделать,что бы получить весь текст с страницы в одну строчку. Вот какие у меня настройки:
    [​IMG]
     
  8. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.337
    Симпатии:
    1.794
    Совсем неверно
    Текстовый блок может содержать переносы строк, поэтому надо заменить перенос строки на пустоту
    После этого сохраняем все блоки через разделитель пробел


    [​IMG]
     

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