Advertisement
Guest User

bot.py

a guest
Aug 16th, 2017
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.74 KB | None | 0 0
  1. from selenium import webdriver;
  2. from random import randint;
  3. import hashlib;
  4. import time;
  5. import codecs;
  6. import sys;
  7.  
  8. browser1 = None;
  9. browser2 = None;
  10.  
  11. proxies = [];
  12.  
  13. action_time = 2;
  14. create_time = 5;
  15. implicit_wait_time = 30;
  16. page_load_time = 60;
  17. avg_cooldown_time = 0; #min
  18. avg_cooldown_spread = 0; #min
  19.  
  20. if len(sys.argv) < 4 or (sys.argv[1] != "-o" and sys.argv[1] != "-l"):
  21. print 'Usages: ';
  22. print ' python bot.py -o [video] [n_page]';
  23. print ' python bot.py -l [video] [proxy_file]';
  24. sys.exit(0);
  25.  
  26. if sys.argv[1] == "-o":
  27. mode = 1;
  28. n_page = int(sys.argv[3])+1;
  29.  
  30. if sys.argv[1] == "-l":
  31. mode = 2;
  32. proxy_file = sys.argv[3];
  33.  
  34. video = sys.argv[2]; #car, run, wc
  35.  
  36. vote_link = {};
  37. vote_link['run'] = "https://www.anker.com/deals/anker_powers_up_competition/v/614892-don-t-let-others-overtake-you";
  38. vote_link['wc'] = "https://www.anker.com/deals/anker_powers_up_competition/v/619279-no-anker-no-bathroom-banter";
  39. vote_link['car'] = "https://www.anker.com/deals/anker_powers_up_competition/v/617966-don-t-get-lost";
  40.  
  41. def getProxiesFile():
  42. proxies = [line.rstrip('\n') for line in open(proxy_file + '.txt')];
  43. return proxies;
  44.  
  45. def getProxies():
  46. browser = webdriver.Firefox();
  47. browser.get("https://free-proxy-list.net/anonymous-proxy.html");
  48. if (len(sys.argv) > 1):
  49. page = sys.argv[1];
  50. browser.find_element_by_css_selector('.pagination a[data-dt-idx="'+str(n_page)+'"]').click();
  51. ips = browser.find_elements_by_css_selector('#proxylisttable tr td:nth-child(1)');
  52. ports = browser.find_elements_by_css_selector('#proxylisttable tr td:nth-child(2)');
  53. i = 0;
  54. proxies = [];
  55. while i < len(ips):
  56. proxies.append(ips[i].text+':'+ports[i].text);
  57. i += 1;
  58. browser.close();
  59. return proxies;
  60.  
  61. if mode == 2:
  62. proxies = getProxiesFile();
  63. else:
  64. proxies = getProxies();
  65.  
  66. i = 0;
  67. n_votes = 0;
  68.  
  69. while 1:
  70. try:
  71. print '====================================================';
  72. if i > len(proxies):
  73. if mode == 2:
  74. print '\n\nGive me more proxies\n';
  75. break;
  76. else:
  77. proxies = getProxies();
  78. i = 0;
  79.  
  80.  
  81. #proxy setup
  82. proxy_string = proxies[i];
  83. proxy = proxy_string.split(':');
  84. profile = webdriver.FirefoxProfile() ;
  85. profile.set_preference("network.proxy.type", 1);
  86. profile.set_preference("network.proxy.http", proxy[0]);
  87. profile.set_preference("network.proxy.http_port", int(proxy[1]));
  88. #profile.set_preference('permissions.default.stylesheet', 2);
  89. #profile.set_preference('permissions.default.image', 2);
  90. #profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false');
  91. profile.update_preferences();
  92. print 'Using proxy: ' + proxy[0] + ':' + proxy[1];
  93.  
  94. browser = webdriver.Firefox(firefox_profile=profile);
  95.  
  96. browser.implicitly_wait(implicit_wait_time);
  97. browser.set_page_load_timeout(page_load_time);
  98. browser.get("https://temp-mail.org/en/option/delete/");
  99.  
  100. #get email address
  101. email = browser.find_element_by_css_selector('#mail');
  102. email = email.get_attribute('value');
  103. print 'Created email: ' + email;
  104.  
  105. #create account
  106. browser.get("https://www.anker.com/register?back=%2Fdeals%2Fanker_powers_up_competition");
  107. username = browser.find_element_by_css_selector('input[name="email"]');
  108. password = browser.find_element_by_css_selector('input[name="password"]');
  109. time.sleep(action_time);
  110. username.send_keys(email);
  111. password_text = hashlib.sha224(email).hexdigest()[:12];
  112. time.sleep(action_time);
  113. password.send_keys(password_text);
  114. time.sleep(create_time);
  115.  
  116. while 1:
  117. browser.find_element_by_css_selector('.submit').click();
  118. time.sleep(create_time);
  119. curr_url = browser.current_url;
  120. if "activation" in curr_url:
  121. break;
  122.  
  123. time.sleep(create_time);
  124. print 'Account created: ', email, '/', password_text;
  125.  
  126. #verify account
  127. browser.get("https://temp-mail.org/en");
  128. timeout = 0;
  129. while 1:
  130. try:
  131. browser.find_element_by_css_selector('#mails tbody tr td a').click();
  132. break;
  133. except Exception:
  134. browser.get("https://temp-mail.org/en/option/refresh/");
  135. timeout += 1;
  136. if timeout == 3:
  137. break;
  138. pass;
  139.  
  140. if timeout == 3:
  141. raise Exception;
  142.  
  143. confirm_link = browser.find_element_by_partial_link_text('https://www.anker.com/');
  144. browser.get(confirm_link.get_attribute("href"));
  145.  
  146. time.sleep(action_time);
  147. browser.find_element_by_css_selector('button.submit').click();
  148. print 'Account validated';
  149.  
  150. #cast vote
  151. time.sleep(action_time);
  152.  
  153. browser.get(vote_link[video]);
  154. time.sleep(action_time);
  155. while 1:
  156. try:
  157. browser.find_element_by_css_selector('b.vote').click();
  158. break;
  159. except Exception:
  160. browser.get(vote_link[video]);
  161. pass;
  162. i += 1;
  163. n_votes += 1;
  164. print 'Voted ', n_votes;
  165. proxy_list = open('logs'+ video + '.txt', "a");
  166. proxy_list.write(proxy[0]+'\n');
  167. proxy_list.close();
  168.  
  169. browser.close();
  170. except Exception:
  171. i += 1;
  172. try:
  173. browser.close();
  174. except Exception:
  175. pass;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement