Помогите с регуляркой

Поддержка
  • @freeliman свою регулярку покажи

  • ./admin.php?phrases/admin_navigation-(.)/edit&language_id=2.*

    Попробуй вот так

  • @freeliman вот это ))

    &
    

    символ амперсанда &
    и автоматически распознаётся браузером как &
    при желании можно использовать (но нужно ли?)

    encodeURI( [[URL]] )
    

    Если параметры language_id нужны, то я бы так забирал url (тогда не имеет значения, как меняется адрес)

    (?<=href=").*?(?=")
    

    а с XPATH ещё проще

    //@href
    

    если параметры не нужны, то такой регуляркой

    (?<=href=").*?edit
    
  • Я с толкнулся с такой проблемой. Не могу забрать ссылку. Простую ссылку. Как это делать ? Вот мне надо из текста выдернуть ссылку.

    Покажите пример, как это делается а то я там такое построил дерево, что аж козырёк мешает смотреть =)

  • @freeliman Выше написали же

    //@href
     вот так
    

    Но у бас есть такая функция "Получить значение атрибута"

  • Да я получал значение атрибута. Там фигня а не ссылка получается.

    @GamiD said in Помогите с регуляркой:

    @freeliman Выше написали же

    //@href
     вот так
    

    А какой инструмент ? Покажи механизм пожалуйста, как это применять ?

  • @freeliman said in Помогите с регуляркой:

    уйста, как это применять ?

    В получить текст выбираешь xpath и пишешь

    //a[1]/@href
    

    или так

    //span[@class="u-anchorTarget"]/parent::node()/@href
    
  • @GamiD said in Помогите с регуляркой:

    //span[@class="u-anchorTarget"]/parent::node()/@href

    А если я делаю это в цикле ?

  • @freeliman Ну делай кто тебе мешает если таких ссылок много то используй

    >XPATH> //span[@class="u-anchorTarget"]/parent::node()/@href >AT>[[CYCLE_INDEX]]
    
  • Мне нужно на странице найти все ссылки которые есть на определенный сайт, затем выбрать одну случайным образом и кликнуть на нее.

    Ссылки могут быть разные, на главную страницу или на разделы категорий или на статьи:

    <a href="http://site1.com/">
    
    <a href="http://site1.com/index.php?cat=c50809_posts23.html">
    
    <a href="http://site1.com/posts123.html">
    
    <a href="http://site1.com/category/posts273.html">
    							
    <a class="slider-link" href="https://site1.com/index.php?cat=c509_post.html" >
    

    Делаю через Проверить существование [href="{{url}}"]

    Находяться только ссылки на главную http://site1.com/. Ссылки на категории и статьи не находятся. Как правильно написать регулярное выражение, чтобы отрезать все после http://site1.com/ и как дальше нужно правильно делать, писать регулярное выражение в действие Проверить существование или использовать промежуточную переменную? Или Проверить существование в моем случае не подходит вообще? Перепробовал кучу вариантов, но ничего не срабатывает.

  • @servasw45 В вашем случае проще через xpath, получайте все ссылки со страницы через xpath получить каждый xml

    //a/@href
    

    Полученный список пройти через foreach, ставите if

    [[FOREACH_DATA]].indexOf('http://site1.com') > -1
    

    в этом if действие Добавить Элемент (в список, который заранее создали).
    После foreach используйте действие Случайный Элемент из списка, в который складывали нужные url.

  • Пересмотрел много роликов, но все равно есть вопросы :(

    Нахожу ссылку вот так:

    >XPATH> //a[contains(@href,'[[RANDOM_LINK_URL]]')]
    

    Если попадается ссылка такого вида

    <a href="http://www.site.com/12345/">link</a>
    

    то бас по ней кликает.

    А если попадается ссылка такого вида

    <a href="http://www.site.com/12345/" <img src="http://www.site.com/12345/123.jpg"></a>
    

    когда кликать надо по картинке,

    или когда в ссылке присутствуют метка

    <a href="http://www.site.com/12345/link.html?utm=1234">link</a>
    

    то бас не может по ней кликнуть.

    Как првильно написать селектор,

    >XPATH> //a[contains(@href,'[[RANDOM_LINK_URL]]')]
    

    чтобы кликало по ссылкам-картинкам и по ссылкам с utm и другими метками?

    Вот скрипт на всякий случай
    1_1537365470782_visit-random-click-4.3.4-url.txt 0_1537365470782_visit-random-click-4.3.4.xml

  • @servasw45 а не удобнее будет сначала достать все ссылки на картинки и все ссылки с "utm", а потом по ним переходить?
    К слову, можно ссылку на сайт, где в коде есть utm?

  • Не помню где мне попадались ссылки с utm и не могу сейчас найти по-быстрому. Мне такие ссылки как раз и не нужны. Их лучше всего отфильтровать как-то.

    Вот такую попалась в поиске:
    https://ilovemommy.com.ua/ru/brands.html?___store=ru

    XPATH> //a[contains(@href,'[[RANDOM_LINK_URL]]')] ее как то находит, а бас по этой ссылке не кликает.

  • @servasw45 почти все ссылки идут с классами или id или другими атрибутами. Если знать, какие конкретно ссылки нужны, то можно вытаскивать только их со страницы и потом их загружать.
    Причем все это можно быстренько делать в http клиенте.

    Я могу написать быстренько скрипт, но нужно больше конкретики, что именно вынимать со страницы... что потом с этим делать и т.д.

  • Задача очень простая,

    1. нужно взять ссылку на сайт из списка и открыть
    2. по-имитировать чтение страницы
      3 выбрать любую ссылку на другую страницу этого же сайта, перейти на нее и повторить пункт 2

    С пунктами 1 и 2 все понятно.

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

    Выше приложил скрипт, который даже работает, но с частыми ошибками. Надо усовершенствовать или другую логику работы использовать. Подскажите, плз, в какую сторону копать

    П.С.
    В списке будут разные сайты, с разными дизайнами и разным кодом html и css, потому к классам и идентификаторам решил не привязываться, а использовал XPATH> //a[contains(@href,'[[RANDOM_LINK_URL]]')]

  • @servasw45 0_1537397322071_demo1.xml придумал такой костыль. Надо только протестировать его на других сайтах...

  • Спасибо за подсказку. :)
    Тестирую

  • @servasw45 said in Помогите с регуляркой:

    Спасибо за подсказку. :)
    Тестирую

    Там ошибочка только небольшая с кавычками. Измени регулярку на эту

    "(?P<result>{{URL}}[a-z\/]{13,20})"
    

    И все ок должно быть

  • Так лучше, спасибо :)