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



  • @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 либо принадлежит анкору либо другому тексту на странице((((


  • administrators

    @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] - но он мне тоже не подходит(


  • administrators

    @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 - содержит "" ??? Что не так???


  • administrators

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



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


  • administrators

    @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()

    спасибо!


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.