Визуальный конструктор блоков для реализации логики

Поддержка
  • сделай проверку на существование, и если елемент существует уже получай текст и ложи его в переменную.

    Проверить существование css1
    IF IS_EXIST
        Получить текст в переменную [[TEXT]]
    Проверить существование css2
    IF IS_EXIST
        Получить текст в переменную [[TEXT]]
    Проверить существование css3
    IF IS_EXIST
        Получить текст в переменную [[TEXT]]
    

    Как то так. В итоге не будет лишних переменных, и проблем с ними

  • @DrPrime спасибо - всегда оперативно выручаешь - я вначале использовал этот метод - пока не уперся головой в стену - предложенный вариант это идеальное решение, но в моем случае 2 из 3 css блоков всегда существуют, только принадлежат к разным блокам (на одной странице нужный текст находится в css1 на другой этот же текст в css2, а порой и в css3 но 2 из 3 блоков всегда присутствуют только правильный из них всего один...) - что посоветуете в этом случае???

  • @Turutur ну тут уже по странице нужно смотреть
    сразу и не скажешь. Есть какие то особености текста?

  • @Turutur Вам нужно более точнее определиться с алгоритмом работы. Не понятно какой блок вам нужен.

    но 2 из 3 блоков всегда присутствуют только правильный из них всего один

    Если существуют 2 блока и один из них всегда правильный, как выбрать какой именно?

  • @support @DrPrime ребята - все так и есть как написал - попробую по другому описать проблему:
    тз - нужно спарсить со страницы анкор ссылки, который является подкатегорией и исходя из анкора сделать следующее действие - это все просто, НО

    подкатегории лежат в разных категориях и блоки обрамления имеют разный вид, например на одной странице :nth-child(12) > ul > :nth-child(3) > a

    и этот же анкор в другой категории :nth-child(4) > ul > :nth-child(1) > a

    я конечно пробовал найти общие элементы для всех страниц - но общих блоков не нашел - есть такие например
    project_234234234_хххххххх - где номер проекта разный в каждой странице!!!

    так жже пробовал через получить код элемента и через match - все меняется - я первый раз с такими сложностями сталкиваюсь - для большей наглядности:

    страница https://www.fl.ru/projects/3069383/sdelat-ochen-prostoy-logotip.html
    0_1481938619793_121212.png

    страница https://www.fl.ru/projects/3069216/natyanut-vrstku-na-bitriks.html
    0_1481938644470_131313.png

    и страница https://www.fl.ru/projects/3068197/dorabotka-internet-magazina-na-wordpress.html
    0_1481938685240_141414.png

    я пробовал получать эти элементы с 9ти подкатегорий - сегодня они срабатывают - завтра нет - так как элементы на некоторых страницах отличаются - закономерностей не нашел.

    Поэтому я и делал "игнорировать ошибки" > "полусить текст 1" > "получить текст 2" > "получить текст 3"

    и

    и блоком игнор ошибок
    присвоить переменную [[text1]][[text2]][[text3]] - на выходе получаю ошибку - так как текст 2 или 3 получить не удается, а текст 1 либо принадлежит анкору либо другому тексту на странице((((

  • @Turutur
    Получить подкатегорию(то что выделено красным на скринах) у меня получилось используя второй вариант предложенный БАС:

    :nth-child(2) > :nth-child(1) > :nth-child(4) > :nth-child(2)
    

    Проект parseflsub.xml

    И даже если структура страницы была бы всегда разная, всегда можно получить код страницы и регуляркой искать вот этот кусок

    <a href="/freelancers/razrabotka-sajtov/">Разработка сайтов</a> / <a href="/freelancers/web-programmist-razrabotka-sajtov/">Веб-программирование</a>
    

    Или еще. На всех 3 страницах есть всего 2 ссылки, вида /freelancers/что-то там и вторая как раз та, что вам нужна. Их легко найти через регулярку/xpath

  • @support said in Визуальный конструктор блоков для реализации логики:

    Получить подкатегорию(то что выделено красным на скринах) у меня получилось используя второй вариант предложенный БАС:
    :nth-child(2) > :nth-child(1) > :nth-child(4) > :nth-child(2)

    @support - получить у меня то же получилось - но потом они поменялись(, буду пробовать xpath - спасибо!

  • вот шаблон xpath который вернет анкор подкатегории //div[contains(@class, "b-layout__txt_fontsize_11")]/a[last()]/text()

  • @support said in Визуальный конструктор блоков для реализации логики:

    Или еще. На всех 3 страницах есть всего 2 ссылки, вида /freelancers/что-то там и вторая как раз та, что вам нужна. Их легко найти через регулярку/xpath

    подскажите какой либо конструктор выражения - а то гугл не знает ничего приличного кроме теории - я получил путь //*[@id="project_info_3069383"]/div[1]/div[4]/a[2] - но он мне тоже не подходит(

  • @Turutur лучший конструктор - внутри браузера http://prnt.sc/dkg4m0

  • @support - все печально( - //*[@id="project_info_3069383"]/div[1]/div[4]/a[2] - я так и получал (((

  • @koward said in Визуальный конструктор блоков для реализации логики:

    //div[contains(@class, "b-layout__txt_fontsize_11")]/a[last()]/text()

    спасибо за готовое решение - пока работает - подскажите как составляли - владеете материалом или софт есть какой?

  • @Turutur составлять xpath выражения можно научится за вечер ничего сложного в нем нет, вот вам 2 ссылок для ознакомления http://zvon.org/xxl/XPathTutorial/Output_rus/examples.html
    http://onedev.net/post/458

  • @koward спасибо - то что надо!

  • @support - я в недоумении - @koward уже дал готовое решение - но я не могу применить его на практике! выполняю следующие действия - Браузер(код страницы) - Xpath(получить текст) - текст для применения xpath код страницы - xpath запрос - //div[contains(@class, "b-layout__txt_fontsize_11")]/a[last()]/text() - в итоге переменная xpath_text - содержит "" ??? Что не так???

  • @Turutur Я тоже в шоке, у меня работает

  • @support - помогите разобраться, что не так делаю?
    здесь работает
    0_1482024685005_232323.png
    а в проекте нет - какие действия или настройки не так делаю?
    0_1482024502441_xpath_test.xml

  • @Turutur
    Либо используйте

    //div[contains(@class, "b-layout__txt_fontsize_11")]/a[last()]/text() и Xpath получить xml
    либо
    //div[contains(@class, "b-layout__txt_fontsize_11")]/a[last()] и Xpath получить текст

  • @support said in Визуальный конструктор блоков для реализации логики:

    //div[contains(@class, "b-layout__txt_fontsize_11")]/a[last()]/text()

    спасибо!