Бесплатные снипеты на заказ

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
7
Баллы
8
Удалить элементы содержащие текст
Удалить элементы, удовлетворяющие регулярному выражению
C#:
var list = project.Lists["List"]; 
Regex reg = new Regex("Регулярка");
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list.Count; i++)
    {
        string str = list[i];
        if (reg.IsMatch(str))
        {
            list.RemoveAt(i);
            i--;
        }
    }
}[/QUOTE]
Что то не срабатывает = (
project.Lists["[B]List[/B]"]; = project.Lists["[B]Список 1[/B]"]; 
new Regex("[B]Регулярка[/B]"); = new Regex("[B]\t\t\t\t\t\ .*[/B]");
Далее создают свой С# код и вставляю этот код туда ? Но выдает ошибку.
[IMG]http://f2.s.qip.ru/cMfvWP6O.png[/IMG] [IMG]http://f4.s.qip.ru/cMfvWP6P.png[/IMG]
 

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
7
Баллы
8

doc

Client
Регистрация
30.03.2012
Сообщения
8 613
Благодарностей
4 601
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
7
Баллы
8
собаку перед регуляркой всунь
Перед регуляркой @ надо
C#:
Regex reg = new Regex(@"\t\t\t\t\t\ .*");
Спасибо , сразу сработало . Но к сожалению оно удаляет всю строку
А я думал удалит только конкретные элементы. То есть нужно почистить от пробелов и табов.


Как вариант конечно можно удалить таким образом ( рис. 1) , но притормаживает и долго это
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113
Долго это только в PM, запускай в ZP.
Можно просто заменить {-String.Tab-} на пустоту или \t на пустоту по Regex.
Если обрабатывать построчно, то можно еще Обработка текста - Trim.
 

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
7
Баллы
8
Долго это только в PM, запускай в ZP.
Можно просто заменить \t на пустоту по Regex.
Если обрабатывать построчно, то можно еще Обработка текста - Trim.
Странно, но TRIM меняет только для первой строки в переменной.
Подскажите пожалуйста , а как можно прописать несколько различных регулярных выражений
1. Местореализации:.*
2. Место\ реализации\ :.*
3. Купить.* и т.д

Можно ли так ?
Код:
Regex reg = new Regex(@"Местореализации:.*, Место\ реализации\ :.*, Купить.* и т.д");
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113
C#:
Regex reg = new Regex(@"((Местореализации:)|(Место реализации:)|(Купить)).*");
 
  • Спасибо
Реакции: sentinel и BraG.A

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
7
Баллы
8
Долго это только в PM, запускай в ZP.
Можно просто заменить {-String.Tab-} на пустоту или \t на пустоту по Regex.
Если обрабатывать построчно, то можно еще Обработка текста - Trim.
Спасибо большое за ответы очень помогли.

Очень часто надо убрать "лишние" пробелы в тексте, но оставив при этом логические пробелы ( между словами, между цифрами и тд). В голову пришла идея как это сделать, но как на языке С# написать не знаю.
Если число пробелов > 1, то пробел = пустота.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113
Очень часто надо убрать "лишние" пробелы в тексте, но оставив при этом логические пробелы ( между словами, между цифрами и тд). В голову пришла идея как это сделать, но как на языке С# написать не знаю.
Если число пробелов > 1, то пробел = пустота.
Стандартным кубиком можно заменить по Regex \ {2,} на пустоту (или пробел). Или принципиально в коде нужно?
C#:
tring str = project.Variables["Text"].Value;
str = Regex.Replace(str, " {2,}", "");
return str;
 
Последнее редактирование:

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
7
Баллы
8
Может подскажите, как решить следующую задачу.
Есть список А1,А2,А3,А4,А5,А6
А надо его занести в таблицу ексель со следующей логикой
1Столбец 2 Столбец 3 Столбец
А1 А2 А3
А4 А5 А6

Ранее делал с помощью ↓ и повторял процесс, но так как текста много хотелось бы найти решение через С#

 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 436
Баллы
113
Приложи этот проект, посмотрим.
ктото шаб на халяву обещал )))
В одном кубике все-равно работать не хочет, последний запрос не отправляет( я ж как всегда наверное что-то натупил), если в двух C# кубиках - норм - шаблон ниже.
Если не в одном делать, то надо все переменные добалять в проект, если в одном - переменные не нужны.
P.S. Никаких проверок нет, просто регает. Все можно добавить. Но потом. Для начала в один кубик поместить
Так - не работает (пост не отправляет)
Код:
//Get запрос, получаем куки-хуюки
var resultGet = ZennoPoster.HttpGet(
  "https://e.mail.ru/signup?from=main_noc",
  "",
  "utf-8",
  InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
  5000,
  "",
  project.Profile.UserAgent,
  true,
  5,
     AdditionalHeaders: new [] {
     "Host: e.mail.ru",
     "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
     "Accept-Language: uk,ru;q=0.8,en-US;q=0.5,en;q=0.3 ", //+project.Profile.AcceptLanguage,
     "Accept-Encoding: gzip, deflate, br" ,//+project.Profile.AcceptEncoding,
     "Referer: https://e.mail.ru/signup?from=main_noc",
     "Connection: keep-alive"
   }
);

// Парсим регулярками переменные

var cookie = Regex.Match(resultGet, "(?<=Set-Cookie: ).*?(?=").Value;
var id = Regex.Match(resultGet, "(?<=<input\\ type=\"hidden\" name=\"ID\" value=\").*(?=\"/>)").Value;
var x_reg_id = Regex.Match(resultGet, "(?<='x_reg_id':\\ ').*(?=')").Value;
var name = Regex.Match(resultGet, "(?<=:first',\\ 'firstName':\\ 'input\\[name=\\\\').*?(?=\\\\']:-)").Value;
var family = Regex.Match(resultGet, "(?<=:first',\\ 'lastName':\\ 'input\\[name=\\\\').*?(?=\\\\']:-)").Value;
var god = Regex.Match(resultGet, "(?<='x_reg_id', ').*?(?=', 'BirthMonth', ')").Value;
var pol = Regex.Match(resultGet, "(?<=<input type=\"radio\" class=\"vtm\" name=\").*?(?=\" value=\"1\" id=\"man1\">)").Value;
var name_mail = Regex.Match(resultGet, "(?<=\\{'login':\\ 'input\\[name=\\\\').*?(?=\\\\'])").Value;
var password1 = Regex.Match(resultGet, "(?<=name=\").*?(?=\" value=\"\" type=\"password\")").Value;
var password2 = Regex.Match(resultGet, "(?<=name=\").*?(?=\" value=\"\" type=\"password\")", RegexOptions.RightToLeft).Value;
var captha1 = Regex.Match(resultGet, "(?<=<input id=\"captchaCode\" class=\"inPut form__captcha-old__input\" type=\"text\" name=\").*?(?=\" value=\")").Value;
var cpat = Regex.Match(resultGet, "(?<=2\\?r=).*?(?=\"\\ )").Value;
var day = Regex.Match(resultGet, "(?<=BirthMonth',\\ ').*?(?=\')").Value;

//Get на каптчу
var captcha__get = ZennoPoster.HttpGet(
  "http://c.mail.ru/c/2?r=" + cpat,
  "",
  "utf-8",
  InterfacesLibrary.Enums.Http.ResponceType.File,
  5000,
  cookie,//"cookie",
  project.Profile.UserAgent,
  true,
  5,
   AdditionalHeaders: new [] {
     //"Host: e.mail.ru",
     "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
     "Accept-Language: uk,ru;q=0.8,en-US;q=0.5,en;q=0.3 ", //+project.Profile.AcceptLanguage,
     "Accept-Encoding: gzip, deflate, br" ,//+project.Profile.AcceptEncoding,
     "Referer: https://e.mail.ru/signup?from=main_noc",
     "Connection: keep-alive"
   }
);

//Обрабатываем каптчу
var image = System.Drawing.Image.FromFile(@captcha__get);
string base64String = String.Empty;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
   {
     image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
       byte[] imageBytes = ms.ToArray();
     base64String = Convert.ToBase64String(imageBytes);
   }
var result = ZennoPoster.CaptchaRecognition("RuCaptcha.dll", base64String, ""); // Указываем модуль распознавания
var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
if (tmp.Length > 1) return tmp[0];

//Post отправка данных регистрации на сервер

var post = ZennoPoster.HttpPost(
   url:"https://e.mail.ru/reg?from=main_noc",
   content:"signup_b=1&sms=1&no_mobile=1&ID=" + id + "&Count=1&back=&browserData=NoJS&Mrim.Country=24&Mrim.Region=226&x_reg_id=" + x_reg_id +  "&security_image_id=&geo_countryId=24&geo_cityId=226&geo_regionId=999998&geo_country=&geo_place=&lang=ru_RU&" + name + "=" + project.Profile.Name + "&" + family + "=" + project.Profile.Surname + "&" + day + "=" + project.Profile.BornDay +  "&BirthMonth=3&" + god + "=" + project.Profile.BornYear +  "&your_town=Санкт-Петербург, Россия&" + pol + "=2&" +name_mail + "=" + project.Profile.Login +  "&RegistrationDomain=mail.ru&" + password1 + "=" + project.Profile.Password +  "&" + password2 +  "=" + project.Profile.Password + "&RemindPhoneCode=7&RemindPhone=&Password_Question=Custom&" + captha1 + "=" + project.Variables["result"].Value + "&new_captcha=1",
   contentPostingType:"application/x-www-form-urlencoded",
   proxy:"",
   Encoding:"utf-8",
   respType:ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
   Timeout:30000,
   Cookies:cookie,
   UserAgent:project.Profile.UserAgent,
   UseRedirect:true,
   MaxRedirectCount:5,
   AdditionalHeaders: new [] {
                 //"Host: e.mail.ru",
                 "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                 "Accept-Language: uk,ru;q=0.8,en-US;q=0.5,en;q=0.3 ", //+project.Profile.AcceptLanguage,
                 "Accept-Encoding: gzip, deflate, br" ,//+project.Profile.AcceptEncoding,
                 "Referer: https://e.mail.ru/signup?from=main_noc",
                 "Connection: keep-alive"
                 }
);
return post;

В аттаче - рабочий, но без проверок.
ProfileLogin и ProfilePassword - логин и пасс мыла
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: masterLomaster

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 436
Баллы
113
И да, весь тот гемор, что ничего не регалось и я ломал голову пару недель - пофиксилось(ну, почти все) при обновлении зенки =)
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113
я ж как всегда наверное что-то натупил
Ага:-)

В строке 70 ты возвращаешь значение return tmp[0]; и тем самым прерываешь дальнейшее выполнение кода. Замени
C#:
if (tmp.Length > 1) return tmp[0];
на
C#:
if (tmp.Length > 1)
    project.Variables["result"].Value = tmp[0];
 
  • Спасибо
Реакции: Nord и masterLomaster
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Ага:-)

В строке 70 ты возвращаешь значение return tmp[0]; и тем самым прерываешь дальнейшее выполнение кода. Замени
C#:
if (tmp.Length > 1) return tmp[0];
на
C#:
if (tmp.Length > 1)
    project.Variables["result"].Value = tmp[0];
теперь все в 1 кубике!
Только почему в данных такая фигня?
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 436
Баллы
113
теперь все в 1 кубике!
Только почему в данных такая фигня?
то норм, каждый раз парсятся новые айдишники полей, которые надо отправлять для регистрации. сейчас эти переменные можно убрать, не связывать с переменными проджектмейкера
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
то норм, каждый раз парсятся новые айдишники полей, которые надо отправлять для регистрации. сейчас эти переменные можно убрать, не связывать с переменными проджектмейкера
всмысле убрать? из кубика удалить?
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 436
Баллы
113
всмысле убрать? из кубика удалить?
Надо вместо такого
project.Variables["cookie"].Value = Regex.Match(resultGet, "(?<=Set-Cookie: ).*?(?=;-)").Value;
делать так
var cookie = Regex.Match(resultGet, "(?<=Set-Cookie: ).*?(?=;-)").Value;
В первом случае в ПМ должна быть соответствующая переменная, во втором все остается в коде

Как доберусь до зенки, попробую сделать
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113
Как доберусь до зенки, попробую сделать
И еще тогда
C#:
if (tmp.Length > 1)
    project.Variables["result"].Value = tmp[0];

// заменить на

if (tmp.Length <= 1) return null;

// или на

if (tmp.Length <= 1)
    throw new Exception("Каптча чё-то там...");
и соответственно в строке 76
C#:
project.Variables["result"].Value

// заменить на

tmp[0]
 
  • Спасибо
Реакции: Nord
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Надо вместо такого
project.Variables["cookie"].Value = Regex.Match(resultGet, "(?<=Set-Cookie: ).*?(?=;-)").Value;
делать так
var cookie = Regex.Match(resultGet, "(?<=Set-Cookie: ).*?(?=;-)").Value;
В первом случае в ПМ должна быть соответствующая переменная, во втором все остается в коде

Как доберусь до зенки, попробую сделать
ясно! Я такое и сам могу сделать )))
У меня только не регает нифига ))) ошибку выдает по рукапче, говорит ключа нет, а СМ не перехватывает хотя какбы должен, теперь думаю если прописать тут var result = ZennoPoster.CaptchaRecognition("RuCaptcha.dll", base64String, ""); вместо RuCaptcha.dll это CapMonster2.dll - так будет в СМ работать?
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113
  • Спасибо
Реакции: masterLomaster
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Ну ты, наверно, код просто подправил, я имел ввиду тут в коде под спойлером, в конце 76й строки.
все вроде подправил, код выполняется без ерроров но в почту зайти немогу через обработку почты!
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 436
Баллы
113

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 436
Баллы
113
Вот, работает без переменных из ПМ
Код:
//Get запрос, получаем куки-хуюки
var resultGet = ZennoPoster.HttpGet(
  "https://e.mail.ru/signup?from=main_noc",
  "",
  "utf-8",
  InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
  5000,
  "",
  project.Profile.UserAgent,
  true,
  5,
     AdditionalHeaders: new [] {
                 "Host: e.mail.ru",
                 "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                 "Accept-Language: uk,ru;q=0.8,en-US;q=0.5,en;q=0.3 ", //+project.Profile.AcceptLanguage,
                 "Accept-Encoding: gzip, deflate, br" ,//+project.Profile.AcceptEncoding,
                 "Referer: https://e.mail.ru/signup?from=main_noc",
                 "Connection: keep-alive"
                 }
);

// Парсим регулярками переменные

     var cookie = Regex.Match(resultGet, "(?<=Set-Cookie: ).*?(?=;)").Value;
     var id = Regex.Match(resultGet, "(?<=<input\\ type=\"hidden\" name=\"ID\" value=\").*(?=\"/>)").Value;
     var x_reg_id = Regex.Match(resultGet, "(?<='x_reg_id':\\ ').*(?=')").Value;
     var name = Regex.Match(resultGet, "(?<=:first',\\ 'firstName':\\ 'input\\[name=\\\\').*?(?=\\\\']:)").Value;
     var surname = Regex.Match(resultGet, "(?<=:first',\\ 'lastName':\\ 'input\\[name=\\\\').*?(?=\\\\']:)").Value;
     var year = Regex.Match(resultGet, "(?<='x_reg_id', ').*?(?=', 'BirthMonth', ')").Value;
     var sex = Regex.Match(resultGet, "(?<=<input type=\"radio\" class=\"vtm\" name=\").*?(?=\" value=\"1\" id=\"man1\">)").Value;
     var email = Regex.Match(resultGet, "(?<=\\{'login':\\ 'input\\[name=\\\\').*?(?=\\\\'])").Value;
     var password1 = Regex.Match(resultGet, "(?<=name=\").*?(?=\" value=\"\" type=\"password\")").Value;
     var password2 = Regex.Match(resultGet, "(?<=name=\").*?(?=\" value=\"\" type=\"password\")", RegexOptions.RightToLeft).Value;
     var catpcha = Regex.Match(resultGet, "(?<=<input id=\"captchaCode\" class=\"inPut form__captcha-old__input\" type=\"text\" name=\").*?(?=\" value=\")").Value;
     var cpat = Regex.Match(resultGet, "(?<=2\\?r=).*?(?=\"\\ )").Value;
     var day = Regex.Match(resultGet, "(?<=BirthMonth',\\ ').*?(?=\')").Value;

//Get на каптчу
var captcha__get = ZennoPoster.HttpGet(
  "http://c.mail.ru/c/2?r=" + cpat,
  "",
  "utf-8",
  InterfacesLibrary.Enums.Http.ResponceType.File,
  5000,
  cookie,
  project.Profile.UserAgent,
  true,
  5,
   AdditionalHeaders: new [] {
                 "Host: e.mail.ru",
                 "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                 "Accept-Language: uk,ru;q=0.8,en-US;q=0.5,en;q=0.3 ", //+project.Profile.AcceptLanguage,
                 "Accept-Encoding: gzip, deflate, br" ,//+project.Profile.AcceptEncoding,
                 "Referer: https://e.mail.ru/signup?from=main_noc",
                 "Connection: keep-alive"
                 }
);

//Обрабатываем каптчу
     var image = System.Drawing.Image.FromFile(@captcha__get);
     
     string base64String = String.Empty;
     using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
       {
         image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
         byte[] imageBytes = ms.ToArray();
         base64String = Convert.ToBase64String(imageBytes);
       }
     var result = ZennoPoster.CaptchaRecognition("RuCaptcha.dll", base64String, ""); // Указываем модуль распознавания
     var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
     if (tmp.Length <= 1) return null;

//Post отправка данных регистрации на сервер

var post = ZennoPoster.HttpPost(
   url:"https://e.mail.ru/reg?from=main_noc",
   content:"signup_b=1&sms=1&no_mobile=1&ID=" + id + "&Count=1&back=&browserData=NoJS&Mrim.Country=24&Mrim.Region=226&x_reg_id=" + x_reg_id +  "&security_image_id=&geo_countryId=24&geo_cityId=226&geo_regionId=999998&geo_country=&geo_place=&lang=ru_RU&" + name + "=" + project.Profile.Name + "&" + surname + "=" + project.Profile.Surname + "&" + day + "=" + project.Profile.BornDay +  "&BirthMonth=3&" + year + "=" + project.Profile.BornYear +  "&your_town=Санкт-Петербург, Россия&" + sex + "=2&" +email + "=" + project.Profile.Login +  "&RegistrationDomain=mail.ru&" + password1 + "=" + project.Profile.Password +  "&" + password2 +  "=" + project.Profile.Password + "&RemindPhoneCode=7&RemindPhone=&Password_Question=Custom&" + catpcha + "=" + tmp[0] + "&new_captcha=1",
   contentPostingType:"application/x-www-form-urlencoded",
   proxy:"",
   Encoding:"utf-8",
   respType:ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderOnly,
   Timeout:30000,
   Cookies:cookie,
   UserAgent:project.Profile.UserAgent,
   UseRedirect:true,
   MaxRedirectCount:5,
   AdditionalHeaders: new [] {
                 //"Host: e.mail.ru",   
                 "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                 "Accept-Language: uk,ru;q=0.8,en-US;q=0.5,en;q=0.3 ", //+project.Profile.AcceptLanguage,
                 "Accept-Encoding: gzip, deflate, br" ,//+project.Profile.AcceptEncoding,
                 "Referer: https://e.mail.ru/signup?from=main_noc",
                 "Connection: keep-alive"
                 }
);
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 436
Баллы
113
А прокси ж не работают в С# кубиках если их просто подключить при работе постера из проксичекера?
Надо в самом кубике прописывать переменную или проксю?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 105
Баллы
113
А прокси ж не работают в С# кубиках если их просто подключить при работе постера из проксичекера?
Надо в самом кубике прописывать переменную или проксю?
Если надо из Проксичекера, то, вроде как, нужен экшн "Проксичекер - Получить прокси" и коде прописывать переменную.
 

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