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

  • Автор темы Автор темы Kreola
  • Дата начала Дата начала

Kreola

Member
Приветствую!
Пример 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.
Например с применением условия. Если
Очень нужно.
Парсер должен уметь форматировать такие вещи.
Спасибо, очень облегчите жизнь.
 
Приветствую!
Форб, чтоб не вдаваться в дискуссии надо или не надо(без обид), если это можно сделать, то пожалуйста сделай.
Чтоб можно было манипулировать данными которые забираются в parse result не только Regexp.macth но и Regexp.Replace
2015_01_05_11_47_28.png
 
Для этого есть Result builder где все уже реализовано, более того Parse custom result избыточен потому что такой же функционал есть в Result builder
Не вдаваясь в дискуссию задачу переношу в отклоненные :)
 
Result builder не появляется в Тестовом парсинге, это очень неудобно, формирование результата приходится проверять методом тыка.
Я могу расписать пример реальный, но чувствую что все равно ты будешь стоять на своем.
Если уж так, тогда каким образом удалять дубли в результатах после Result builder?
 
Ладно, значит будем разбираться.
Итак имеем поле city
2015_01_05_15_16_29.png

удаляем пустоту если она есть и сохраняем в поле city
Далее удаляем теги и сохраняем в city2
Как мне уникализировать результаты в city2?
В Unique result не появляется поля city2
Скорее всего нужно отдельно что-то опять создавать и придумывать? Типа сделаем уникализацию в Result format?
Это бред и очень неудобно, даже если оно так и есть.
 
с этого и надо начинать :) как временное решение - сохранять в туже переменную
 
тогда каков смысл поля Save To?
И опять же, надо четко понимать что будет в конце, а проверить это нельзя. потому что Source result не виден в Тестировщике.
Ну невозможно сразу создавать правильные парсинги, так не бывает.
 
Привет.
Форб, прошу объяснить что я делаю не так. Не с точки правильности как понимаешь ее ты, а с точки логики, и возможно я перестану задавать такие вопросы. Ну и желательно подправить пресет.
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
2015_01_07_14_32_52.png

Собираю раздел контента в переменную $Cont
Собираю раздел списков в массив $Tels
Собираю раздел компании в переменную $Comp
Далее хочу удалить html теги из массива Tels и после применить к нему регулярку для получения номеров (\d+)/g, сохраняю в массив Tels
Строку $Cont, я тоже хочу почистить от html тегов и также применив регулярку для получения номеров (\d+)/g, сохранить в массив Tels
После сделать уникализацию массива Tels

Прошу помощи в реализации.
Я бы просто применил повторно Parse result, но он не умеет удалять теги, как и любую другую ерунду. Поэтому будь добр, опиши, как реализовывать подобное имея то. что сейчас есть. Спасибо.
 
на вид все верно, кроме того что Regex match по массиву Tels с сохранением туда же зациклит парсер, в последней версии 1.1.178 это делать запрещено - т.е. задание не запустится и выведет ошибку

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

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