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; } |