Знать бы Сайт, где это повторить даже можно было :)
Помогите с регуляркой
-
Есть код такого типа.
<a href="/admin.php?phrases/admin_navigation-dbtech_shop.20852/edit&language_id=2"><span class="u-anchorTarget" id="__20852"></span><div class="dataList-mainRow"><span dir="auto">admin_navigation.dbtech_shop</span> <span class="dataList-hint" dir="auto">DragonByte Shop</span></div></a>Достать нужно вот это, а вот это всегда меняется dbtech_shop.20852
/admin.php?phrases/admin_navigation-dbtech_shop.20852/edit&language_id=2Без этого
amp;Почему то в коде, после получения SAVED_XML, добавляется эта шняга =(
edit& amp; language_id=2
-
@freeliman вот это ))
&символ амперсанда &
и автоматически распознаётся браузером как &
при желании можно использовать (но нужно ли?)encodeURI( [[URL]] )Если параметры language_id нужны, то я бы так забирал url (тогда не имеет значения, как меняется адрес)
(?<=href=").*?(?=")а с XPATH ещё проще
//@hrefесли параметры не нужны, то такой регуляркой
(?<=href=").*?edit -
Мне нужно на странице найти все ссылки которые есть на определенный сайт, затем выбрать одну случайным образом и кликнуть на нее.
Ссылки могут быть разные, на главную страницу или на разделы категорий или на статьи:
<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 -
Не помню где мне попадались ссылки с utm и не могу сейчас найти по-быстрому. Мне такие ссылки как раз и не нужны. Их лучше всего отфильтровать как-то.
Вот такую попалась в поиске:
https://ilovemommy.com.ua/ru/brands.html?___store=ruXPATH> //a[contains(@href,'[[RANDOM_LINK_URL]]')] ее как то находит, а бас по этой ссылке не кликает.
-
@servasw45 почти все ссылки идут с классами или id или другими атрибутами. Если знать, какие конкретно ссылки нужны, то можно вытаскивать только их со страницы и потом их загружать.
Причем все это можно быстренько делать в http клиенте.Я могу написать быстренько скрипт, но нужно больше конкретики, что именно вынимать со страницы... что потом с этим делать и т.д.
-
Задача очень простая,
- нужно взять ссылку на сайт из списка и открыть
- по-имитировать чтение страницы
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})"И все ок должно быть