Нажна помощь в алгоритме по поиску информации на сайте rosreest.ru

1. husky 6 05.04.19 09:11 Сейчас в теме
Пишу алгоритм по поиску (по кадастровому номеру) на сайте Росреестра информации.
Если кто сталкивался с подобными запросами, подскажите плиз.

Итак, мой алгоритм:

Номер="10:20:110125:11";

 //----------------------------------------------------------------------------------------------------------
	АдресСервера = "rosreestr.ru";
	ПутьДоСтраницыЗапроса = "/wps/portal/p/cc_ib_portal_services/online_request";
	ПутьДоКартинкиКапчи = "/wps/portal/p/cc_ib_portal_services/online_request/!ut/p/z1/04_Sj9CPykssy0xPLMnMz0vMAfIjo8zi3QNNXA2dTQy93QMNzQ0c­PR29DY0N3Q0MQkz1w_Eq8DfUj6JEP1ABSL8BDuBoANQfhdcKZyMCCkBOJGRJ­QW5ohEGmpyIAKLXudw!!/p0/IZ7_01HA1A42KODT90AR30VLN22001=CZ6_GQ4E1C41KGQ170AIAK131­G00T5=NJcaptcha=/";
	ИмяПараметраSESSID = "JSESSIONID_8";

		
	Соединение = Новый HTTPСоединение(АдресСервера,,,,Новый ИнтернетПрокси,5,Новый ЗащищенноеСоединениеOpenSSL);	
	 
	
	Ответ = Соединение.GET(Новый HTTPЗапрос(ПутьДоСтраницыЗапроса));
	мстр = СтрЗаменить(Ответ.Заголовки["Set-Cookie"], ";",Символы.ПС);
	Для нСтр = 1 по СтрЧислоСтрок(мстр) Цикл
		тСтр = СтрПолучитьСтроку(мстр,нСтр);
		Если Найти(тСтр,ИмяПараметраSESSID) > 0 Тогда
			SESSID = СокрЛП(СтрЗаменить(СтрЗаменить(тСтр,ИмяПараметраSESSID,""),"=",""));
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	

	//----------------------------------------------------------------------------------------------------------
	Соединение = Новый HTTPСоединение(АдресСервера,,,,Новый ИнтернетПрокси,5,Новый ЗащищенноеСоединениеOpenSSL);
	
	Заголовки = Новый Соответствие();
	Заголовки.Вставить("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3");
	Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded");
	Заголовки.Вставить("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7");
	Заголовки.Вставить("Cache-Control", "max-age=0");
	Заголовки.Вставить("Connection","keep-alive");
	Заголовки.Вставить("Upgrade-Insecure-Requests","1");
	Заголовки.Вставить("Accept-Encoding","gzip, deflate, br");
	Заголовки.Вставить("Host",АдресСервера);
	Заголовки.Вставить("Origin", АдресСервера);
	Заголовки.Вставить("Referer",АдресСервера+ПутьДоСтраницыЗапроса);
	Заголовки.Вставить("Cookie",ИмяПараметраSESSID+"="+SESSID);
	Заголовки.Вставить("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36");


	Ответ = Соединение.GET(Новый HTTPЗапрос(ПутьДоКартинкиКапчи,Заголовки));
	
	//Ответ=Соединение.Получить(HTTPЗапрос);
	
	ДвоичныеДанныеКартинки = Ответ.ПолучитьТелоКакДвоичныеДанные();
	ЭлементыФормы.ПолеКартинки1.Картинка = Новый Картинка (ДвоичныеДанныеКартинки);
	Строка =0;
	ВвестиСтроку(Строка, "Введите капчу");
	Цифры = Строка;

	//Капча = ПоместитьВоВременноеХранилище(Ответ.ПолучитьТелоКакДвоичныеДанные(), УникальныйИдентификатор);
	
	//ЭлементыФормы.ПолеКартинки1.Картинка = Новый Картинка (Капча);
	//----------------------------------------------------------------------------------------------------------


	СодержимоеЗапроса = Новый HTTPЗапрос(ПутьДоСтраницыЗапроса, Заголовки);
	
	Ответ = Соединение.GET(СодержимоеЗапроса);

	СтрокаХТМЛ = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
	ЧтениеHTML = Новый ЧтениеHTML;
	ЧтениеHTML.УстановитьСтроку(СтрокаХТМЛ);
	ПостроительDOM = Новый ПостроительDOM;
	ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
	
	ЭлементыDOM = ДокументHTML.ПолучитьЭлементыПоИмени("form");
	
	Для Каждого ЭлДок Из ЭлементыDOM Цикл
		
		//Если ЭлДок.Имя="PC_7_015A1H40IOMCC0ACRHALLM30A1000000_searchForm" Тогда 
		//Если ЭлДок.Имя="ns_Z7_01HA1A42KG4D30A3BUVH3O0000_searchForm" Тогда
		
		//----------------------------------------------
		Если ЭлДок.Имя="ns_Z7_01HA1A42KODT90AR30VLN22001_searchForm" Тогда  // Эту запись периодически сайт меняет
			//----------------------------------------------
			АдресЗапроса0 = ЭлДок.Действие;
			//АдресЗапроса0 = Лев(АдресЗапроса0,94);
			//АдресЗапроса=ЭлДок.БазовыйURI +АдресЗапроса0;
			//АдресЗапроса=Прав(АдресЗапроса,289);
		КонецЕсли;
	КонецЦикла;

	АдресЗапроса="/wps/portal/p/cc_ib_portal_services/online_req­uest/!ut/p/z1/04_Sj9CPykssy0xPLMnMz0vMAfIjo8zi3QNNXA2dTQy93QMNzQ0c­PR29DY0N3Q0MQkz1w_Eq8DfUj6JEP1ABSL8BDuBoANQfhdcKZyMCCkBOJGRJ­QW5ohEGmpyIAKLXudw!!/";
					 
	ПутьДоСтраницыЗапроса = АдресЗапроса+АдресЗапроса0;	
	
	//----------------------------------------------------------------------------------------------------
	
		
	КадНомер=СтрЗаменить(Номер,":","%3A");
	search_action="search_action=true"+ "&subject=" + "®ion="+"&settlement=" + "&search_type=CAD_NUMBER" + "&cad_num="+КадНомер+"&start_position=59"+"&obj_num="+"&old_­number="+"&street_type=str0"+"&street="+"&house="+"&building­="+"&structure="+"&apartment="+"&right_reg="+"&encumbrance_r­eg="+"&captchaText="+Цифры+"";
	
	СодержимоеЗапроса = Новый HTTPЗапрос(ПутьДоСтраницыЗапроса, Заголовки);
	СодержимоеЗапроса.УстановитьТелоИзСтроки(search_action);
	
	
	Ответ=Соединение.ОтправитьДляОбработки(СодержимоеЗапроса);
	
	СтрокаХТМЛ = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
	ЧтениеHTML = Новый ЧтениеHTML;
	
	ЧтениеHTML.УстановитьСтроку(СтрокаХТМЛ);
	
	ПостроительDOM = Новый ПостроительDOM;
	ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
	
	ЭлементыDOM = ДокументHTML.ПолучитьЭлементыПоИмени("tr");
Показать



Итогом должен быть выполнен поиск по кадастровому номеру и переход на вторую страницу хотябы. Сейчас пока не переходит не понятно почему.
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Xershi 1484 05.04.19 22:47 Сейчас в теме
(1) в опере смотришь как ведет себя сайт когда ты кликаешь и воспроизводишь все действия. Ничего сложного.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот