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

Alabama

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

50174


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

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

Valandersi

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

AZANIR

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

Alabama

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

Phoenix78

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

Alabama

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

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

AZANIR

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

AZANIR

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

sergodjan66

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
11 224
Благодарностей
4 366
Баллы
113
Еще как вариант:

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

Phoenix78

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

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

ftalazol

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

Valandersi

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

dafaroff

Client
Регистрация
03.05.2011
Сообщения
27
Благодарностей
47
Баллы
13
Все прокси со страницы в список
с# код
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);
}
 
  • Спасибо
Реакции: sergodjan66 и Alabama

Alabama

Client
Регистрация
02.02.2020
Сообщения
26
Благодарностей
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
Сообщения
33
Благодарностей
4
Баллы
8
50189


50190


50191


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

Alabama

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

sergodjan66

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

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

606

Client
Регистрация
07.03.2019
Сообщения
6
Благодарностей
1
Баллы
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
Сообщения
7 481
Благодарностей
2 539
Баллы
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="
Тут их несколько.
 

Phoenix78

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

Mikhail B.

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

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