Advertisement
Guest User

Untitled

a guest
Feb 5th, 2017
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. require "rubygems"
  2. require 'selenium-webdriver'
  3. require 'chunky_png'
  4. require "selenium/client"
  5. require 'headless'
  6. require 'rucaptcha_api'
  7. require 'mail'
  8.  
  9. def send_mail(email)
  10. mail = Mail.new do
  11. from 'proxyz@ukr.net'
  12. to email
  13. subject 'Not see "Brak terminów" on the page'
  14. end
  15.  
  16. mail.to_s
  17.  
  18. puts mail.to_s
  19.  
  20. mail.deliver!
  21. end
  22.  
  23. def anticaptcha(img)
  24. rucaptcha_key = '4fc08777310f3a847133a8e13e81535a'
  25. api = RucaptchaApi.new rucaptcha_key
  26. path_to_captcha = File.expand_path img
  27. captcha_id = api.send_captcha_for_solving path_to_captcha
  28. solved_captcha = api.get_solved_captcha captcha_id
  29. return solved_captcha
  30. end
  31.  
  32. email = "proxyz@ukr.net"
  33.  
  34. headless = Headless.new
  35.  
  36. headless.start
  37.  
  38. browser = Selenium::WebDriver.for :firefox
  39.  
  40. browser.get 'https://secure.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=7&IDPlacowki=89'
  41.  
  42. if browser.title == "System Zdalnej Rejestracji"
  43. puts "Site aviable"
  44. else
  45. puts "Site does not aviavle"
  46. end
  47.  
  48. select_language = browser.find_element(:id, 'ddlWersjeJezykowe')
  49.  
  50. select_language.click
  51.  
  52. options = select_language.find_elements(tag_name: 'option')
  53. options.each { |option| option.click if option.text == 'Polska' }
  54.  
  55. sleep 5
  56.  
  57. image = browser.find_element(:id, 'c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage')
  58. href = image.attribute('src')
  59.  
  60. substring = href[-30..-1]
  61.  
  62. wd = Dir.pwd
  63. saveloc = "#{wd}/captcha-#{substring}.png"
  64. browser.save_screenshot(saveloc)
  65. wd = Dir.pwd
  66. saveloc = "#{wd}/captcha-#{substring}.png"
  67. browser.manage.window.resize_to(500,500)
  68. image.location_once_scrolled_into_view
  69. browser.save_screenshot(saveloc)
  70.  
  71. input = ChunkyPNG::Image.from_file(saveloc)
  72. input.crop!(238, 377, 250, 40)
  73. input.save(saveloc)
  74.  
  75. sleep 5
  76. input_captcha = browser.find_element(:id, 'cp_BotDetectCaptchaCodeTextBox')
  77. input_captcha.location_once_scrolled_into_view
  78. input_captcha.clear
  79. str = anticaptcha(saveloc)
  80. puts str
  81.  
  82. input_captcha.send_keys str
  83.  
  84. submit_button = browser.find_element(:id, 'cp_btnDalej')
  85. submit_button.location_once_scrolled_into_view
  86. submit_button.click
  87.  
  88. sleep 5
  89. begin
  90. output = browser.find_element(:id, 'cp_lblBrakTerminow')
  91. puts output.text[0..12]
  92. if(output.text[0..12]=='Brak terminów')
  93. send_mail(email)
  94. end
  95. rescue
  96. send_mail(email)
  97. end
  98.  
  99.  
  100. browser.quit
  101. headless.destroy
  102.  
  103.  
  104. require "rubygems"
  105. require 'selenium-webdriver'
  106. require 'chunky_png'
  107. require "selenium/client"
  108. require 'headless'
  109. require 'rucaptcha_api'
  110. require 'mail'
  111.  
  112. def send_mail(email)
  113. mail = Mail.new do
  114. from 'proxyz@ukr.net'
  115. to email
  116. subject 'Not see "Brak terminów" on the page'
  117. end
  118.  
  119. mail.to_s
  120.  
  121. puts mail.to_s
  122.  
  123. mail.deliver!
  124. end
  125.  
  126. def anticaptcha(img)
  127. rucaptcha_key = '4fc08777310f3a847133a8e13e81535a'
  128. api = RucaptchaApi.new rucaptcha_key
  129. path_to_captcha = File.expand_path img
  130. captcha_id = api.send_captcha_for_solving path_to_captcha
  131. solved_captcha = api.get_solved_captcha captcha_id
  132. return solved_captcha
  133. end
  134.  
  135. email = "proxyz@ukr.net"
  136.  
  137. headless = Headless.new
  138.  
  139. headless.start
  140.  
  141. browser = Selenium::WebDriver.for :firefox
  142.  
  143. browser.get 'https://secure.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=7&IDPlacowki=89'
  144.  
  145. if browser.title == "System Zdalnej Rejestracji"
  146. puts "Site aviable"
  147. else
  148. puts "Site does not aviavle"
  149. end
  150.  
  151. select_language = browser.find_element(:id, 'ddlWersjeJezykowe')
  152.  
  153. select_language.click
  154.  
  155. options = select_language.find_elements(tag_name: 'option')
  156. options.each { |option| option.click if option.text == 'Polska' }
  157.  
  158. sleep 5
  159.  
  160. image = browser.find_element(:id, 'c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage')
  161. href = image.attribute('src')
  162.  
  163. substring = href[-30..-1]
  164.  
  165. wd = Dir.pwd
  166. saveloc = "#{wd}/captcha-#{substring}.png"
  167. browser.save_screenshot(saveloc)
  168. wd = Dir.pwd
  169. saveloc = "#{wd}/captcha-#{substring}.png"
  170. browser.manage.window.resize_to(500,500)
  171. image.location_once_scrolled_into_view
  172. browser.save_screenshot(saveloc)
  173.  
  174. input = ChunkyPNG::Image.from_file(saveloc)
  175. input.crop!(238, 377, 250, 40)
  176. input.save(saveloc)
  177.  
  178. sleep 5
  179. input_captcha = browser.find_element(:id, 'cp_BotDetectCaptchaCodeTextBox')
  180. input_captcha.location_once_scrolled_into_view
  181. input_captcha.clear
  182. str = anticaptcha(saveloc)
  183. puts str
  184.  
  185. input_captcha.send_keys str
  186.  
  187. submit_button = browser.find_element(:id, 'cp_btnDalej')
  188. submit_button.location_once_scrolled_into_view
  189. submit_button.click
  190.  
  191. sleep 5
  192. begin
  193. output = browser.find_element(:id, 'cp_lblBrakTerminow')
  194. puts output.text[0..12]
  195. if(output.text[0..12]=='Brak terminów')
  196. send_mail(email)
  197. end
  198. rescue
  199. send_mail(email)
  200. end
  201.  
  202.  
  203. browser.quit
  204. headless.destroy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement