Помощь в написании регулярного выражения

Alabama

Client
Регистрация
02.02.2020
Сообщения
28
Благодарностей
2
Баллы
3
Можно ли из этого кода регулярным выражением спарсить прокси с портом и привести их к стандартному виду (прокси:порт):

50174


В регулярках не силён, как и в C#.

По отдельности взять прокси и порт и потом их "склеить" додумался как.
Но при выполнении проекта (при большом объёме) такое решение занимает много времени.
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 868
Благодарностей
1 114
Баллы
113
Можно взять полностью кусок и вырезать не нужное, но это опять же 2 действия
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
а по вашему вопросу , много непоняток , может там гораздо проще можно все парсить и не морочить себе голову.
регулярка прокси получаем (?<=>)\d+\.\d+\.\d+\.\d+(?=<)
регулярка пор получаем (?<=>)\d+(?=<)
 

Alabama

Client
Регистрация
02.02.2020
Сообщения
28
Благодарностей
2
Баллы
3
а по вашему вопросу , много непоняток , может там гораздо проще можно все парсить и не морочить себе голову.
регулярка прокси получаем (?<=>)\d+\.\d+\.\d+\.\d+(?=<)
регулярка пор получаем (?<=>)\d+(?=<)
Это я осилил.
Вопрос в другом.
Можно ли одним регулярным выражением сразу получить значение: 208.67.183.240:80
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
Это я осилил.
Вопрос в другом.
Можно ли одним регулярным выражением сразу получить значение: 208.67.183.240:80
зачем ? сэкономить 1 наносекунду процессорного времени ? :-) это какой то верх перфекционизма :-)
 

Alabama

Client
Регистрация
02.02.2020
Сообщения
28
Благодарностей
2
Баллы
3
зачем ? сэкономить 1 наносекунду процессорного времени ? :-) это какой то верх перфекционизма :-)
Я ж написал:
"Но при выполнении проекта (при большом объёме) такое решение занимает много времени."

На одной странице от 1 до 400 прокси. Таких страниц 180.
Если получать два значения (прокси, порт) и потом их "склеивать" (приводя к виду прокси:порт) стандартными экшен'ами, то проект достаточно долго выполняется. Уверен, можно это всё ускорить.
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
Вы написали что не сильны в коде ни в регулярках, то для вас все будет одинаково, по сути выполняться на странице , не в ПМ а в ЗП
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
я сегодня парсил 14к+страниц , нормально все работает ))))
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 362
Благодарностей
8 648
Баллы
113
Еще как вариант:

50182
 
  • Спасибо
Реакции: Alabama

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
Я ж написал:
"Но при выполнении проекта (при большом объёме) такое решение занимает много времени."

На одной странице от 1 до 400 прокси. Таких страниц 180.
Если получать два значения (прокси, порт) и потом их "склеивать" (приводя к виду прокси:порт) стандартными экшен'ами, то проект достаточно долго выполняется. Уверен, можно это всё ускорить.
если долго выполняется то это явно не в командах парсинга или математических операциях. включите трасировку да посмотрите где и за сколько выполняется. уж 100 000 раз спарсить и склеить для процессора вообще не проблема, у него частота работы на порядок выше. другое дело загрузка этих данных через интернет. но при чем тут регулярки ? :dy:
 

ftalazol

Client
Регистрация
05.02.2020
Сообщения
100
Благодарностей
10
Баллы
18
https://regex101.com/ все свои регулярные выражения составляю на этом сайте, единственное надо обратные слеши доьавлять иначе ошибку показывает. Использовал для создания регулярок на php но и для зенки вполне подходит.
 
  • Спасибо
Реакции: Sergodjan

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 868
Благодарностей
1 114
Баллы
113
Если вы не поняли он хочет 1 регуляркой получить и прокси и порт, но это на сколько мне известно не возможно. Поправьте если не прав
 
  • Спасибо
Реакции: Alabama

Alabama

Client
Регистрация
02.02.2020
Сообщения
28
Благодарностей
2
Баллы
3
  • Спасибо
Реакции: Sergodjan

dafaroff

Client
Регистрация
03.05.2011
Сообщения
76
Благодарностей
136
Баллы
33
Все прокси со страницы в список
с# код
project.Variables["source"].Value - исходный код
Код:
string source = project.Variables["source"].Value;
string pattern = @"(\d+\.\d+\.\d+\.\d+).*?>(\d{2,5})";

Regex r = new Regex(pattern);
var all = r.Matches(source);
foreach(Match m in all)
{
    string proxy = m.Groups[1].Value+":"+m.Groups[2].Value;
    if(!project.Lists["proxy"].Contains(proxy))
        project.Lists["proxy"].Add(proxy);
}
 
  • Спасибо
Реакции: Sergodjan и Alabama

Alabama

Client
Регистрация
02.02.2020
Сообщения
28
Благодарностей
2
Баллы
3
Все прокси со страницы в список
с# код
project.Variables["source"].Value - исходный код
Код:
string source = project.Variables["source"].Value;
string pattern = @"(\d+\.\d+\.\d+\.\d+).*?>(\d{2,5})";

Regex r = new Regex(pattern);
var all = r.Matches(source);
foreach(Match m in all)
{
    string proxy = m.Groups[1].Value+":"+m.Groups[2].Value;
    if(!project.Lists["proxy"].Contains(proxy))
        project.Lists["proxy"].Add(proxy);
}
Спасибо!
Именно такое решение и предполагал, если одним регулярным выражением нельзя "собрать" прокси из данного кода.
Просто писать не умею на C#.
 

Artemka

Client
Регистрация
21.12.2015
Сообщения
43
Благодарностей
8
Баллы
8
50189


50190


50191


Так можно сделать!!! Код не могу вставить, ошибка какая-то браузера
 
  • Спасибо
Реакции: Alabama

Alabama

Client
Регистрация
02.02.2020
Сообщения
28
Благодарностей
2
Баллы
3

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 362
Благодарностей
8 648
Баллы
113
Видимо, форум реагирует на теги <scr*pt>

PS: Вот тоже сейчас не пропускало, пока звездой не заменил одну букву.
 
  • Спасибо
Реакции: Alabama

606

Client
Регистрация
07.03.2019
Сообщения
20
Благодарностей
3
Баллы
3
Ребят подскажите как настроить регулярное выражение что бы брать class?
<div class="k-rnV-06582">Мужской костюм
<h3 title="Шкаф ольха" class="kf-or-85ea0 kf-oU-4671f">Шкаф ольха</h3>
<input class="k-CR-097d7 kf-E-P-wdXQ" id="subject" name="subject" placeholder="
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 303
Благодарностей
5 421
Баллы
113
Ребят подскажите как настроить регулярное выражение что бы брать class?
<div class="k-rnV-06582">Мужской костюм
<h3 title="Шкаф ольха" class="kf-or-85ea0 kf-oU-4671f">Шкаф ольха</h3>
<input class="k-CR-097d7 kf-E-P-wdXQ" id="subject" name="subject" placeholder="
Тут их несколько.
 

606

Client
Регистрация
07.03.2019
Сообщения
20
Благодарностей
3
Баллы
3
В этом и вопрос,сайт при каждом входе генерирует новые буквы -цифры,добавляет или убирает слэши и ковычки:be:
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
В этом и вопрос,сайт при каждом входе генерирует новые буквы -цифры,добавляет или убирает слэши и ковычки:be:
так надо класс забрать или из элемента с классом нужны данные ?
в первом случае просто в конструкторе регулярок составляется. что перед <div class=" и что после "> на выходе имя класса
во втором случае я бы через xpath сделал, но для xpath мало данных, зацепиться не за что. если там классы постоянно генерируются то цепляться только за структуру записи.
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 303
Благодарностей
5 421
Баллы
113
В этом и вопрос,сайт при каждом входе генерирует новые буквы -цифры,добавляет или убирает слэши и ковычки:be:
Когда отвечаете, используйте цитирование.
Просто скиньте текст который вам надо спарсить. Конкретно что надо получить из этого.
 

санчил

Client
Регистрация
15.04.2016
Сообщения
318
Благодарностей
55
Баллы
28
Последнее редактирование:

Alex733

Client
Регистрация
27.11.2017
Сообщения
316
Благодарностей
230
Баллы
43
В этом тексте нет ссылки, которая содержит http://yabs.yandex.ru/count/****************** kron23.ru
А по текущей регулярке в результат выдаётся не только ссылка.
Вот регулярка, которая найдёт, то что нужно, если ссылка есть в исходном тексте:

http:\/\/yabs\.yandex\.ru\/count\/.*?kron23\.ru.*?\"
 
  • Спасибо
Реакции: санчил

санчил

Client
Регистрация
15.04.2016
Сообщения
318
Благодарностей
55
Баллы
28
отлично все работает , благодарствую!
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)