Как быстро распознать 1 000 000 каптч через CapMonster?

  • Автор темы Автор темы Jeronimo
  • Дата начала Дата начала

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
239
Реакции
204
Баллы
43
Всем привет.

В наличии: ZennoPoster 5, CapMonster 2, более 1 000 000 ссылок на страницы, содержащие номер телефона в виде изображения.
Задача: сокращение времени распознавания изображения.

Сейчас алгоритм работы таков: заходим на страницу, вытаскиваем картинку, распознаём через CapMonster (создал свой модуль со 100% распознаванием), сохраняем результат в файл, переходим к следующей странице.
Что не устраивает: на один цикл уходит 25 секунд (1 номер телефона = 25 секунд). А это примерно 3500 номеров в сутки. Этого мне мало. Нужно как минимум в 10 раз быстрее.

Мысли: как вариант, можно было бы исключить распознавание каптчи (-10 секунд) в самом цикле. Оставить только сохранение картинок на ПК. Потом взять все картинки и массово их распознать через CapMonster, а потом сохранить результат в файл.

Вопрос: а можно ли так сделать? Если нет, то можете порекомендовать способы увеличения скорости распознавания? Номеров телефонов в виде картинок у меня будет более 1 000 000.

Благодарности: заранее спасибо всем за помощь.
 
Видимо модуль сложный, от сюда и задержки такие. Если попробовать сделать модуль простой, тогда не будет задержек и не будут сьедаться потоки в СМ. Только сервер по мощнее нужен будет.
 
  • Спасибо
Реакции: Jeronimo
Видимо модуль сложный, от сюда и задержки такие. Если попробовать сделать модуль простой, тогда не будет задержек и не будут сьедаться потоки в СМ. Только сервер по мощнее нужен будет.
А реализовать так, как я написал не получится? Т.е. массовая загрузка всех картинок в CapMonster 2 и распознавание с последующим сохранением.
 
Не думаю т.к. время распознавания от этого не измениться, останется прежним. У Вас на таком обьеме это создает основную проблему.
 
Не думаю т.к. время распознавания от этого не измениться, останется прежним. У Вас на таком обьеме это создает основную проблему.
В самом CapMonster 2 у меня каптча распознаётся за 0,02-0,3 секунды. Остальное время (примерно 9 сек) по всей видимости уходит на обмен информацией между ZP и CM (а этот обмен никак не ускорить?).
 
Хм... Один шаблон бегает и просто сохраняет картинки.
Другой шаблон - смотрит есть ли картинка - отправляет на распознавание и сохраняет результат.
Если модуль простой - запускаем данный шаблон в 1000 потоков - и получится минимум в 1000 раз быстрее (проблема останется в скорости скачивания этих картинок).
 
Хм... Один шаблон бегает и просто сохраняет картинки.
Другой шаблон - смотрит есть ли картинка - отправляет на распознавание и сохраняет результат.
Если модуль простой - запускаем данный шаблон в 1000 потоков - и получится минимум в 1000 раз быстрее (проблема останется в скорости скачивания этих картинок).
К сожалению, у меня Lite версия ZennoPoster. Я им не так часто пользуюсь, чтобы покупать Professional...
 
К сожалению, у меня Lite версия ZennoPoster. Я им не так часто пользуюсь, чтобы покупать Professional...
Лайт версию в многопотоке запустить не получится...
Если дело не секретное, то могу запустить на своем сервере (если дело одноразовое).
 
  • Спасибо
Реакции: Jeronimo
Лайт версию в многопотоке запустить не получится...
Если дело не секретное, то могу запустить на своем сервере (если дело одноразовое).
А как с вами можно связаться? Скайп? Icq? Telegram?
 
Последнее редактирование:
Возможно на сайте, как на авито есть мобильная версия, где номера можно было брать не картинками, также для распознавания можно использовать евил или тессеракт.
 
  • Спасибо
Реакции: Jeronimo
Всем спасибо. Всё оказалось гораздо проще. На сайте действительно есть мобильная версия, а там уже номера телефонов не в виде картинок.
Так что даже распознавать не нужно.
По моим подсчётам, можно будет собирать примерно 20000 телефонов в сутки, это если один поток.
 
  • Спасибо
Реакции: Roman*
Пример шаблона который может собирать номера с мобильной версии на запросах (мало ли кому-то еще пригодится...).

P.S. Получилось все же собрать в один сниппет...
C#:
Развернуть Свернуть Копировать
string url = "https://m.avito.ru/moskva/tovary_dlya_kompyutera/prodaem_asiki_bitmain_antminer_d3_i_l3_ibelink_1222894632"; // или project.Variables["url_avito"].Value
string proxy =  String.Empty;
string cookie = String.Empty;

string get_avito = ZennoPoster.HttpGet(
				url, 
				proxy, 
				"UTF-8", 
				ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 
				30000, 
				cookie, 
				project.Profile.UserAgent, 
				true, 
				5,
				new [] {""}
				);

			string sessid = Regex.Match(get_avito, @"(?<=Set-Cookie:\ sessid=).*?(?=;)").Value;
			string u = Regex.Match(get_avito, @"(?<=Set-Cookie:\ u=).*?(?=;)").Value;
			string v = Regex.Match(get_avito, @"(?<=Set-Cookie:\ v=).*?(?=;)").Value;
			string sx = Regex.Match(get_avito, @"(?<=Set-Cookie:\ sx=).*?(?=;)").Value;
			string dfp_group = Regex.Match(get_avito, @"(?<=Set-Cookie:\ dfp_group=).*?(?=;)").Value;
			string mlocation = Regex.Match(get_avito, @"(?<=Set-Cookie:\ _mlocation=).*?(?=;)").Value;

cookie = string.Format("sessid={0}; u={1}; v={2}; sx={3}; dfp_group={4}; _mlocation={5}",sessid,u,v,sx,dfp_group,mlocation);

string  link_tel=Regex.Match(get_avito,@"(?<=js-action-show-number)[\w\W]*?(?=title=""Телефон\ продавца"")").Value;
	    link_tel=Regex.Match(link_tel,@"(?<=href=""/)[\w\W]*?(?="")").Value;
		link_tel = string.Format(@"https://m.avito.ru/{0}",link_tel);
		
string get_number_avito = ZennoPoster.HttpGet(
				link_tel,
				proxy,
				"UTF-8", 
				ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 
				30000,
				cookie, 
				project.Profile.UserAgent,
				true, 
				5,
				new [] {"Referer: "+ url }
				);
string number = Regex.Match(get_number_avito, @"(?<=<span\ class=""button-text"">).*?(?=</span>)").Value;
	   number = number.Replace(" ", "").Replace("-", "");

project.SendInfoToLog(number + " "+url);				
return number;
 

Вложения

Последнее редактирование:
Всем спасибо. Всё оказалось гораздо проще. На сайте действительно есть мобильная версия, а там уже номера телефонов не в виде картинок.
Так что даже распознавать не нужно.
По моим подсчётам, можно будет собирать примерно 20000 телефонов в сутки, это если один поток.
Не забудь, что может быть бан через пол часа или сколько то открытых номеров. И может расскажешь как рассылаешь по этим номерам? Майл агент, телега, вибер, воцапп?
 
Не забудь, что может быть бан через пол часа или сколько то открытых номеров. И может расскажешь как рассылаешь по этим номерам? Майл агент, телега, вибер, воцапп?
Знаю людей, которые производят рассылку СМС через Вайбер используя вот этот сервис.
Но, вот что конкретно рассылают на такие номера - сложно сказать.
Я сам давненько хотел заняться СМС рассылками, но как покрыть стоимость рассылки так и не придумал.
 
Лайт версию в многопотоке запустить не получится...
так ему надо на пост/гетах немного нашуровать, тут же в одной конкурсной статье было хоть в миллион потоков в лайт для них...
 
так ему надо на пост/гетах немного нашуровать, тут же в одной конкурсной статье было хоть в миллион потоков в лайт для них...
Да можно было использовать такой цикл:
Код:
Развернуть Свернуть Копировать
System.Threading.Tasks.Parallel.ForEach(list, data => { // выполняем работу});
Но, мне кажется, что управлять таким шаблоном будет сложновато человеку, который сам не знает как такое написать (не в бесконечном же цикле выполнять эту работу - придется городить логику, например берем 100 каптч, а потом данным циклом отправляем на распознавание...).
С другой стороны - скорость теряется мне кажется не на самом распознавании, а на сборе самих каптч.
Так вот в итоге я посмотрел что в мобильной версии картинок нет - набросал пример запросов... А далее уже используя прокси можно работать.
В любом случае на запросах куда быстрее даже в один поток будет работать чем работало до этого в браузере.
 
Так вот в итоге я посмотрел что в мобильной версии картинок нет набросал пример запросов...
блин не посмотрел...
про мобильную версию это в закрытом разделе писали еще 3 или 4 года назад и пример запросов тоже там был )
я просто думал авито чето поменяла опять :)
сорян, что дернул в общем.
 
  • Спасибо
Реакции: BAZAg
про мобильную версию это в закрытом разделе писали еще 3 или 4 года назад и пример запросов тоже там был )
Я с данным сайтом никогда не работал.
Видимо из-за этого не следил за темами в которых это обсуждалось...
Мне было чисто теоретически интересно как это решается.
сорян, что дернул в общем.
Да ладно, в таком общении глядишь и какую-то интересную идейку подчерпнуть для себя можно :)
 
как я понял шаблон который выше не актуален? у меня не показывает номер
 

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