Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
666
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. require "rubygems"
  2. require 'selenium-webdriver'
  3. require 'chunky_png'
  4. require 'antigate'
  5.  
  6. def send_mail(email,message,browser)
  7. browser.get("http://prxz.ru/pl_script/send.php?email=#{email}&message=#{message}")
  8. end
  9.  
  10. def anticaptcha(img)
  11. captcha = Antigate.wrapper(@captcha_key)
  12. captcha.min_len = 6
  13. captcha.max_len = 8
  14. recognized = captcha.recognize(img, 'jpg')
  15. #puts recognized[0] # ID recognized CAPTCHA
  16. recognized[1] # Text CAPTCHA
  17. end
  18.  
  19. @captcha_key = 'c85898dff36fbb2ae43024d67bda60bf'
  20. #email1 = "karta@ckrp.org.ua"
  21. #email2 = "Abk400@gmail.com"
  22. email1 = "proxyz@ukr.net"
  23. email2 = "proxyz@ukr.net"
  24.  
  25.  
  26.  
  27. if(Time.now.day == 10 or Time.now.day == 20 or Time.now.day == 30) then
  28. time_end = Time.now + (60*60*4) #Время работы
  29. time_to_sleep = 60 #В секундах
  30. else
  31. time_end = Time.now + (60*60*9) #Время работы
  32. time_to_sleep = 180 #В секундах
  33. end
  34.  
  35.  
  36.  
  37.  
  38.  
  39. #Selenium::WebDriver::Firefox::Binary.path="C:/Tor/Browser/firefox.exe"
  40. while true
  41.  
  42. begin
  43. # profile = Selenium::WebDriver::Firefox::Profile.new
  44. # profile['network.proxy.http'] = '81.176.228.20'
  45. # profile['network.proxy.http_port'] = 8972
  46. # Selenium::WebDriver::Proxy.new(http: '81.176.228.20:8972')
  47. browser = Selenium::WebDriver.for :firefox#, :profile => profile
  48.  
  49. browser.get 'https://secure.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=7&IDPlacowki=89'
  50. sleep 2
  51. # begin
  52. # browser.switch_to.alert.accept if browser.switch_to.alert.text!=nil
  53. # rescue
  54. # end
  55. sleep 15
  56. select_language = browser.find_element(:id, 'ddlWersjeJezykowe')
  57.  
  58. select_language.click
  59.  
  60. options = select_language.find_elements(tag_name: 'option')
  61. options.each { |option| option.click if option.text == 'Polska' }
  62.  
  63. sleep 5
  64.  
  65. image = browser.find_element(:id, 'c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage')
  66. href = image.attribute('src')
  67.  
  68. substring = href[-30..-1]
  69.  
  70.  
  71. wd = Dir.pwd
  72. saveloc = "#{wd}/captcha-#{substring}.png"
  73. image.location_once_scrolled_into_view
  74. browser.save_screenshot(saveloc)
  75.  
  76. input = ChunkyPNG::Image.from_file(saveloc)
  77. input.crop!(530, 897, 250, 40)
  78. input.save(saveloc)
  79.  
  80. sleep 5
  81. input_captcha = browser.find_element(:id, 'cp_BotDetectCaptchaCodeTextBox')
  82. input_captcha.location_once_scrolled_into_view
  83. input_captcha.clear
  84. str = anticaptcha(saveloc)
  85. puts str
  86.  
  87. input_captcha.send_keys str
  88.  
  89. submit_button = browser.find_element(:id, 'cp_btnDalej')
  90. submit_button.location_once_scrolled_into_view
  91. submit_button.click
  92.  
  93. sleep 5
  94. begin
  95.  
  96. output = browser.find_element(:id, 'cp_lblBrakTerminow')
  97. puts output.text[0..3]
  98. if(output.text[0..3]!='Brak') then
  99. begin
  100. browser.find_element(:id, 'cp_btnRezerwuj')
  101. send_mail(email2,1,browser)
  102. puts "lucky #{Time.now}"
  103. rescue
  104. send_mail(email1,2,browser)
  105. end
  106. else
  107. send_mail(email1,2,browser)
  108. end
  109. rescue
  110. puts "No have Brak"
  111. begin
  112. browser.find_element(:id, 'cp_btnRezerwuj')
  113. send_mail(email2,1,browser)
  114. puts "lucky #{Time.now}"
  115. rescue Exception => e
  116. puts e.message
  117. send_mail(email1,2,browser)
  118. end
  119. end
  120.  
  121. rescue Exception => e
  122. puts e.message
  123. puts "something does wrong"
  124. send_mail(email2,3, browser)
  125.  
  126. end
  127.  
  128.  
  129. if (Time.now>time_end)
  130. break
  131. end
  132.  
  133. browser.close
  134. sleep time_to_sleep
  135.  
  136. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement