Rbot: парсер данных с госуслуг
На днях довелось попробовать в работе специализированную платформу для написания «роботов» — RPA Bot. По сути это хорошо документированная надстройка на Selenium. В базе позволяет писать «роботов» на Python, Node.js и PHP. На сайте ОЧЕНЬ хорошая документация по всему функционалу с примерами, а потому роботов писать гораздо приятнее чем при использовании «чистого» Selenium. Это плюс. Из минусов — отсутствие версии под Linux и конский ценник. Ну если первое разработчики усиленно пилят, то второе лично мне фиолетово (босс платит 😉 )
В ходе реализации очень понравилась функция save_url_to_file, аналога которой в Selenium я не нашел в своё время, а потому приходилось изобретать велосипед. Ну скорее всего конечно это то-же «велосипед» (ну логично, проект то на основе Selenium), но сделанный «штатно». К сожалению функция не отрабатывает, если закачька происходит с использованием Redirect 301. потому в случае необходимости можно воспользоваться таким вариантом закачки:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |                        $browser->set_default_download($mySettings['work_path']);                        $browser->enable_download_file_dialog(false);                        $browser->navigate("https://www.gosuslugi.ru/api/lk/geps/file/download/$a_aid");                                               wait_on_file($a_name, 120);   function wait_on_file($path, $wait=120, $pause=1) {     global $file_os; 	$a=0; 	while(!$file_os->is_exist($path)) 	{ 		sleep($pause); 		if($a>$wait) 		{ 			debug_mess("ОШИБКА: не дождались появление файла по заданному пути $path!"); 			return false;    		} 		$a++; 	} 	return true;    }  | 
