Автоматическое обновление резюме на PowerShell — Часть 2
Стал замечать что скрипт по обновлению резюме перестал работать, в итоге не много исправил код PowerShell по обновлению резюме.
SuperJob-Update-Rezume-2.1.ps1
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# Скрипт для автоматического обновления резюме на сайте superjob.ru # Версия - 2.1 # Автор - kanitelka # Сайт - flammlin.com # Скрипт работает в автоматическом режиме. Необходимо только ввести # свой логин и пароль, а так же указать верный адрес резюме. # Данные для заполнения # $urlrezume - ссылка на резюме # $login - логин от сайта # $pass - пароль от сайта # Работа происходит в браузере InternetExplorer, который во время работы # открывается на полный экран. По времени выполнения операций по обновлению # занимает около 3 минут максимум. Если выходят ошибки и результата нет, то требуется # увеличить задержки с 100 до 200 к примеру. #Адрес сайта superjob $url = "https://www.superjob.ru/" #Ссылка на резюме которое требуется обновлять $urlrezume = "https://www.superjob.ru/resume/******" #Ссылка на выход с сайта $urlexit = "https://www.superjob.ru/user/logout" #Логин от сайта $login = "***@***.***" #Пароль $pass = "******" #Сам скрипт $ie = New-Object -comobject InternetExplorer.Application $ie.visible = $true $ie.silent = $true $ie.FullScreen = $true #возможно лишнее, но так мне понравилось больше $ie.Navigate( $url ) while($ie.Busy) { Start-Sleep -Milliseconds 100 } #100 миллисекунд равно 0.1 секунда $secLink = $ie.Document.getElementsByTagName('A') | Where-Object {$_.innerText -eq 'Вход и регистрация'} $secLink.click() $doc = $ie.Document Start-Sleep -Milliseconds 500 # Заполняем поле - Имя пользователя $doc.getElementsByName("LoginForm[login]") | % {$_.Value = $login} # Заполняем поле - Пароль $doc.getElementsByName("LoginForm[password]") | % {$_.Value = $pass} Start-Sleep -Milliseconds 200 # Находим кнопку войти и нажимаем ее $ie.Document.Forms | %{$_.getElementsByClassName("sj_block m_t_2 sj_btn m_blue m_stretch js-submit-btn")} | % {$_.Click()} # Заходим на страницу с резюме и обновляем дату публикации Start-Sleep -Milliseconds 200 $ie.Navigate( $urlrezume ) while( $ie.busy){Start-Sleep 1} $secLink = $ie.Document.getElementsByTagName('A') | Where-Object {$_.innerText -eq 'обновить дату публикации'} $secLink.click() #Обновили резюме и ждем Start-Sleep 30 #Производим выход с сайта $ie.Navigate( $urlexit ) while($ie.Busy) { Start-Sleep -Milliseconds 100 } #Убиваем процесс InternetExplorer Get-Process -Name iexplore* | Stop-Process |
В частности изменились вот эти строчки:
1 2 3 4 |
# Заполняем поле - Имя пользователя $doc.getElementsByName("LoginForm[login]") | % {$_.Value = $login} # Заполняем поле - Пароль $doc.getElementsByName("LoginForm[password]") | % {$_.Value = $pass} |
Так же появилась дополнительная задержка в действиях.