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

Улучшение Добавить обработку Replace к Parse Result, не Result builder

Тема в разделе "Отклоненные задачи", создана пользователем Kreola, 5 янв 2015.

  1. Kreola

    Kreola Member

    Регистрация:
    23 июн 2013
    Сообщения:
    203
    Симпатии:
    19
    Приветствую!
    Пример 1: (Это просто пример из головы)
    текст<img class="123456789">111222333</jpg> <br>222333444 jhgfkjdfhksjdfh<а href="http:\\site.555666777.ru">
    Забираем Perse result данные (\d+)
    имеем:
    123456789
    111222333
    222333444
    555666777
    а нужно было оставить
    111222333
    222333444
    Пример 2: (с реальных данных)
    есть телефоны:
    01-1234567
    03/1234567
    125*125646
    1234567/2222222/3333333
    если мы просто ко всем применим /(\d+)/g то получим
    01
    1234567
    03
    1234567
    125
    125646
    1234567
    2222222
    3333333

    на данный момент это можно сделать Result builder, но только в том случае, если потом не надо форматировать данный текст.
    Поэтому добавьте пожалуйста опцию, чтоб можно было проводить обработку результата, не только применяя regexp.match но и банальный Replase.
    Например с применением условия. Если
    Очень нужно.
    Парсер должен уметь форматировать такие вещи.
    Спасибо, очень облегчите жизнь.
     
  2. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.339
    Симпатии:
    1.799
    это как? что значит только в том случае если не надо форматировать?
     
  3. Kreola

    Kreola Member

    Регистрация:
    23 июн 2013
    Сообщения:
    203
    Симпатии:
    19
    Приветствую!
    Форб, чтоб не вдаваться в дискуссии надо или не надо(без обид), если это можно сделать, то пожалуйста сделай.
    Чтоб можно было манипулировать данными которые забираются в parse result не только Regexp.macth но и Regexp.Replace
    [​IMG]
     
  4. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.339
    Симпатии:
    1.799
    Для этого есть Result builder где все уже реализовано, более того Parse custom result избыточен потому что такой же функционал есть в Result builder
    Не вдаваясь в дискуссию задачу переношу в отклоненные :)
     
  5. Kreola

    Kreola Member

    Регистрация:
    23 июн 2013
    Сообщения:
    203
    Симпатии:
    19
    Result builder не появляется в Тестовом парсинге, это очень неудобно, формирование результата приходится проверять методом тыка.
    Я могу расписать пример реальный, но чувствую что все равно ты будешь стоять на своем.
    Если уж так, тогда каким образом удалять дубли в результатах после Result builder?
     
  6. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.339
    Симпатии:
    1.799
    очевидно через Unique result
     
  7. Kreola

    Kreola Member

    Регистрация:
    23 июн 2013
    Сообщения:
    203
    Симпатии:
    19
    Ладно, значит будем разбираться.
    Итак имеем поле city
    [​IMG]
    удаляем пустоту если она есть и сохраняем в поле city
    Далее удаляем теги и сохраняем в city2
    Как мне уникализировать результаты в city2?
    В Unique result не появляется поля city2
    Скорее всего нужно отдельно что-то опять создавать и придумывать? Типа сделаем уникализацию в Result format?
    Это бред и очень неудобно, даже если оно так и есть.
     
  8. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.339
    Симпатии:
    1.799
    с этого и надо начинать :) как временное решение - сохранять в туже переменную
     
  9. Kreola

    Kreola Member

    Регистрация:
    23 июн 2013
    Сообщения:
    203
    Симпатии:
    19
    тогда каков смысл поля Save To?
    И опять же, надо четко понимать что будет в конце, а проверить это нельзя. потому что Source result не виден в Тестировщике.
    Ну невозможно сразу создавать правильные парсинги, так не бывает.
     
  10. Kreola

    Kreola Member

    Регистрация:
    23 июн 2013
    Сообщения:
    203
    Симпатии:
    19
    Привет.
    Форб, прошу объяснить что я делаю не так. Не с точки правильности как понимаешь ее ты, а с точки логики, и возможно я перестану задавать такие вопросы. Ну и желательно подправить пресет.
    eyJwcmVzZXQiOiJEQUxJTEFRQVJBVC1EQVRBIiwidmFsdWUiOnsicHJlc2V0Ijoi
    REFMSUxBUUFSQVQtREFUQSIsInBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1
    bHQiLHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJ1c2Vwcm94eSIsInZhbHVlIjp0
    cnVlfSx7InR5cGUiOiJvdmVycmlkZSIsImlkIjoicHJveHlyZXRyaWVzIiwidmFs
    dWUiOiIxMCJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJwcm94eWJhbm5lZGNs
    ZWFudXAiLCJ2YWx1ZSI6IjAifSx7InR5cGUiOiJvdmVycmlkZSIsImlkIjoiZ29v
    ZENvZGUiLCJ2YWx1ZSI6MjAwfSx7InR5cGUiOiJjdXN0b21SZXN1bHQiLCJyZXN1
    bHQiOiJkYXRhIiwicmVnZXgiOiI8cCBjbGFzcz1cImNvbnRlbnRzXCI+KC4qPyk8
    L3A+IiwicmVnZXhUeXBlIjoicyIsInJlc3VsdFR5cGUiOiJmbGF0IiwiYXJyYXlO
    YW1lIjoiVGVscyIsInJlc3VsdHMiOlsiQ29udCJdfSx7InR5cGUiOiJjdXN0b21S
    ZXN1bHQiLCJyZXN1bHQiOiJkYXRhIiwicmVnZXgiOiI8bGk+Lio/PHNwYW4+KC4q
    Pyk8L3NwYW4+PC9saT4iLCJyZWdleFR5cGUiOiJnIiwicmVzdWx0VHlwZSI6ImFy
    cmF5IiwiYXJyYXlOYW1lIjoiVGVscyIsInJlc3VsdHMiOlsidGVsIl19LHsidHlw
    ZSI6ImN1c3RvbVJlc3VsdCIsInJlc3VsdCI6ImRhdGEiLCJyZWdleCI6IjxsaT5c
    dTA2MjdcdTA2MzNcdTA2NDUgXHUwNjI3XHUwNjQ0XHUwNjM0XHUwNjMxXHUwNjQz
    XHUwNjI5OiguKj8pPC9zcGFuPjwvbGk+IiwicmVnZXhUeXBlIjoicyIsInJlc3Vs
    dFR5cGUiOiJmbGF0IiwiYXJyYXlOYW1lIjoiIiwicmVzdWx0cyI6WyJDb21wIl19
    LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJmb3JtYXRyZXN1bHQiLCJ2YWx1ZSI6
    IiRUZWxzLmZvcm1hdCgnJHRlbFxcbicpIn1dXSwicmVzdWx0c0Zvcm1hdCI6IiRw
    MS5wcmVzZXQiLCJyZXN1bHRzU2F2ZVRvIjoiZmlsZSIsInJlc3VsdHNGaWxlTmFt
    ZSI6ImRhbGlsYXFhcmF0XFxkYWxpbGFxYXJhdC1kYXRhLnR4dCIsImFkZGl0aW9u
    YWxGb3JtYXRzIjpbXSwicmVzdWx0c1VuaXF1ZSI6Im5vIiwicXVlcnlGb3JtYXQi
    OlsiJHF1ZXJ5Il0sInVuaXF1ZVF1ZXJpZXMiOmZhbHNlLCJzYXZlRmFpbGVkUXVl
    cmllcyI6ZmFsc2UsIml0ZXJhdG9yT3B0aW9ucyI6eyJvbkFsbExldmVscyI6ZmFs
    c2V9LCJyZXN1bHRzT3B0aW9ucyI6eyJvdmVyd3JpdGUiOnRydWV9LCJkb0xvZyI6
    Im5vIiwia2VlcFVuaXF1ZSI6Ik5vIiwibW9yZU9wdGlvbnMiOmZhbHNlLCJyZXN1
    bHRzUHJlcGVuZCI6IiIsInJlc3VsdHNBcHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJz
    IjpbXSwicmVzdWx0c0J1aWxkZXJzIjpbeyJzb3VyY2UiOlswLFsiVGVscyIsInRl
    bCJdXSwidHlwZSI6InJlbW92ZUh0bWwiLCJhcnJheSI6IlRlbHMiLCJ0byI6InRl
    bCJ9LHsic291cmNlIjpbMCxbIlRlbHMiLCJ0ZWwiXV0sInR5cGUiOiJyZWdleCIs
    ImFycmF5IjoiVGVscyIsInJlZ2V4IjoiKFtcdTA2NjFcdTA2NjJcdTA2NjNcdTA2
    NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcXGRdezYsfSkiLCJyZWdl
    eFR5cGUiOiJnIiwidG8iOlsidGVsIl19LHsic291cmNlIjpbMCwiQ29tcCJdLCJ0
    eXBlIjoicmVtb3ZlSHRtbCIsInRvIjoiQ29tcCJ9XSwiY29uZmlnT3ZlcnJpZGVz
    IjpbXX19
    Имеем запрос http://www.dalilaqarat.com/estate-56559.html
    [​IMG]
    Собираю раздел контента в переменную $Cont
    Собираю раздел списков в массив $Tels
    Собираю раздел компании в переменную $Comp
    Далее хочу удалить html теги из массива Tels и после применить к нему регулярку для получения номеров (\d+)/g, сохраняю в массив Tels
    Строку $Cont, я тоже хочу почистить от html тегов и также применив регулярку для получения номеров (\d+)/g, сохранить в массив Tels
    После сделать уникализацию массива Tels

    Прошу помощи в реализации.
    Я бы просто применил повторно Parse result, но он не умеет удалять теги, как и любую другую ерунду. Поэтому будь добр, опиши, как реализовывать подобное имея то. что сейчас есть. Спасибо.
     
  11. Forbidden

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

    Регистрация:
    9 мар 2013
    Сообщения:
    3.339
    Симпатии:
    1.799
    на вид все верно, кроме того что Regex match по массиву Tels с сохранением туда же зациклит парсер, в последней версии 1.1.178 это делать запрещено - т.е. задание не запустится и выведет ошибку

    т.е. необходимо сохранять в новый массив с другим именем, тут возникнет одна проблема - нельзя будет сделать уник

    Я добавил 2 задачи которые должны в будущем покрыть описанные тут потребности:
    http://a-parser.com/threads/1442/
    http://a-parser.com/threads/1443/
     
  12. Kreola

    Kreola Member

    Регистрация:
    23 июн 2013
    Сообщения:
    203
    Симпатии:
    19
    Урааааа, спасибо, буду ждать. Извини если что не так)
     

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