Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "rubygems"
- require 'selenium-webdriver'
- require 'chunky_png'
- require "selenium/client"
- require 'headless'
- require 'rucaptcha_api'
- require 'mail'
- def send_mail(email)
- mail = Mail.new do
- from 'proxyz@ukr.net'
- to email
- subject 'Not see "Brak terminów" on the page'
- end
- mail.to_s
- puts mail.to_s
- mail.deliver!
- end
- def anticaptcha(img)
- rucaptcha_key = '4fc08777310f3a847133a8e13e81535a'
- api = RucaptchaApi.new rucaptcha_key
- path_to_captcha = File.expand_path img
- captcha_id = api.send_captcha_for_solving path_to_captcha
- solved_captcha = api.get_solved_captcha captcha_id
- return solved_captcha
- end
- email = "proxyz@ukr.net"
- headless = Headless.new
- headless.start
- browser = Selenium::WebDriver.for :firefox
- browser.get 'https://secure.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=7&IDPlacowki=89'
- if browser.title == "System Zdalnej Rejestracji"
- puts "Site aviable"
- else
- puts "Site does not aviavle"
- end
- select_language = browser.find_element(:id, 'ddlWersjeJezykowe')
- select_language.click
- options = select_language.find_elements(tag_name: 'option')
- options.each { |option| option.click if option.text == 'Polska' }
- sleep 5
- image = browser.find_element(:id, 'c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage')
- href = image.attribute('src')
- substring = href[-30..-1]
- wd = Dir.pwd
- saveloc = "#{wd}/captcha-#{substring}.png"
- browser.save_screenshot(saveloc)
- wd = Dir.pwd
- saveloc = "#{wd}/captcha-#{substring}.png"
- browser.manage.window.resize_to(500,500)
- image.location_once_scrolled_into_view
- browser.save_screenshot(saveloc)
- input = ChunkyPNG::Image.from_file(saveloc)
- input.crop!(238, 377, 250, 40)
- input.save(saveloc)
- sleep 5
- input_captcha = browser.find_element(:id, 'cp_BotDetectCaptchaCodeTextBox')
- input_captcha.location_once_scrolled_into_view
- input_captcha.clear
- str = anticaptcha(saveloc)
- puts str
- input_captcha.send_keys str
- submit_button = browser.find_element(:id, 'cp_btnDalej')
- submit_button.location_once_scrolled_into_view
- submit_button.click
- sleep 5
- begin
- output = browser.find_element(:id, 'cp_lblBrakTerminow')
- puts output.text[0..12]
- if(output.text[0..12]=='Brak terminów')
- send_mail(email)
- end
- rescue
- send_mail(email)
- end
- browser.quit
- headless.destroy
- require "rubygems"
- require 'selenium-webdriver'
- require 'chunky_png'
- require "selenium/client"
- require 'headless'
- require 'rucaptcha_api'
- require 'mail'
- def send_mail(email)
- mail = Mail.new do
- from 'proxyz@ukr.net'
- to email
- subject 'Not see "Brak terminów" on the page'
- end
- mail.to_s
- puts mail.to_s
- mail.deliver!
- end
- def anticaptcha(img)
- rucaptcha_key = '4fc08777310f3a847133a8e13e81535a'
- api = RucaptchaApi.new rucaptcha_key
- path_to_captcha = File.expand_path img
- captcha_id = api.send_captcha_for_solving path_to_captcha
- solved_captcha = api.get_solved_captcha captcha_id
- return solved_captcha
- end
- email = "proxyz@ukr.net"
- headless = Headless.new
- headless.start
- browser = Selenium::WebDriver.for :firefox
- browser.get 'https://secure.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=7&IDPlacowki=89'
- if browser.title == "System Zdalnej Rejestracji"
- puts "Site aviable"
- else
- puts "Site does not aviavle"
- end
- select_language = browser.find_element(:id, 'ddlWersjeJezykowe')
- select_language.click
- options = select_language.find_elements(tag_name: 'option')
- options.each { |option| option.click if option.text == 'Polska' }
- sleep 5
- image = browser.find_element(:id, 'c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage')
- href = image.attribute('src')
- substring = href[-30..-1]
- wd = Dir.pwd
- saveloc = "#{wd}/captcha-#{substring}.png"
- browser.save_screenshot(saveloc)
- wd = Dir.pwd
- saveloc = "#{wd}/captcha-#{substring}.png"
- browser.manage.window.resize_to(500,500)
- image.location_once_scrolled_into_view
- browser.save_screenshot(saveloc)
- input = ChunkyPNG::Image.from_file(saveloc)
- input.crop!(238, 377, 250, 40)
- input.save(saveloc)
- sleep 5
- input_captcha = browser.find_element(:id, 'cp_BotDetectCaptchaCodeTextBox')
- input_captcha.location_once_scrolled_into_view
- input_captcha.clear
- str = anticaptcha(saveloc)
- puts str
- input_captcha.send_keys str
- submit_button = browser.find_element(:id, 'cp_btnDalej')
- submit_button.location_once_scrolled_into_view
- submit_button.click
- sleep 5
- begin
- output = browser.find_element(:id, 'cp_lblBrakTerminow')
- puts output.text[0..12]
- if(output.text[0..12]=='Brak terminów')
- send_mail(email)
- end
- rescue
- send_mail(email)
- end
- browser.quit
- headless.destroy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement