· 5 years ago · Feb 28, 2020, 04:42 PM
1#!/usr/bin/env python
2import argparse
3from time import sleep
4from threading import Thread
5from bs4 import BeautifulSoup
6import random
7
8"""
9driver = webdriver.Firefox()
10driver.get("http://www.python.org")
11assert "Python" in driver.title
12elem = driver.find_element_by_name("q")
13elem.clear()
14elem.send_keys("pycon")
15elem.send_keys(Keys.RETURN)
16assert "No results found." not in driver.page_source
17driver.close()
18"""
19BASE_URL = "https://www.atzuma.co.il/"
20def main():
21 global args, proxy, names_mail
22 names_mail = name_mail_generator()
23 proxy = proxy_generator()
24 parser = argparse.ArgumentParser(
25 description='Atzuma spam voter'
26 )
27 #parser.add_argument(
28 # '-o',
29 # '--option-number',
30 # type=int,
31 # required=True,
32 # help='Enter the option number(1 to max_opts) In the poll'
33 #)
34 parser.add_argument(
35 '--id',
36 type=str,
37 required=True,
38 help='Enter the poll ID'
39 )
40 #parser.add_argument(
41 # '-l',
42 # '--limit-requests',
43 # type=bool,
44 # required=True,
45 # help='Enter if the poll limits requests from 1 browser'
46 #)
47 #parser.add_argument(
48 # '-c',
49 # '--captcha',
50 # type=bool,
51 # default=False
52 #)
53 parser.add_argument(
54 '-n',
55 '--request-num',
56 type=int,
57 default=100,
58 help='Number of requests to send'
59 )
60 parser.add_argument(
61 '-t',
62 '--timeout',
63 type=float,
64 default=0,
65 help='Amount of seconds to timeout between every request'
66 )
67 parser.add_argument(
68 '-T',
69 '--threads',
70 type=int,
71 default=1,
72 help='Amount of threads'
73 )
74
75 args = parser.parse_args()
76 #args["captcha"] = True
77 if (False):
78 selenium_option()
79 else:
80 threads = []
81 for i in range(args.threads):
82 thread = Thread(target=requests_option)
83 threads.append(thread)
84
85 print("Starting threads...")
86 for thread in threads:
87 thread.start()
88
89 for thread in threads:
90 thread.join()
91 print("Finished sending all packets!")
92
93def setup_proxy():
94 pass
95
96def proxy_generator():
97 proxy_list = ""
98 with open("proxylist_.txt", "r") as f:
99 proxy_list = f.read()
100 proxy_list = proxy_list.split("\n")
101 random.shuffle(proxy_list)
102 for proxy in proxy_list:
103 # Proxy, Port
104 yield proxy.strip()
105
106
107def name_mail_generator():
108 global args
109 firstnames = ""
110 lastnames = ""
111 with open("first-names.txt", "r") as f:
112 firstnames = f.read().split("\n")
113 with open("last-names.txt", "r") as f:
114 lastnames = f.read().split("\n")
115
116 random.shuffle(firstnames)
117 random.shuffle(lastnames)
118
119 for i in xrange(min([min([len(firstnames), len(lastnames)]) ** 2, args.request_num])):
120 firstname_index = random.randint(0, len(firstnames))
121 firstname = firstnames[firstname_index]
122
123 lastname_index = random.randint(0, len(lastnames))
124 lastname = lastnames[lastname_index]
125 yield firstname + " " + lastname, firstname + "." + lastname + "@gmail.com"
126
127def requests_option():
128 from bs4 import BeautifulSoup as bs
129 import requests
130 global args, names_mail, proxy
131 original_number = args.request_num
132 _proxy = next(proxy)
133 while (args.request_num > 0):
134 try:
135 print("IM HERE")
136 # Get all checkmarks from page and select the desired options
137 proxies = {
138 "https": _proxy,
139 #"http" : _proxy
140 }
141
142 req = requests.get(BASE_URL + str(args.id))
143 cookies = req.cookies
144 soup = BeautifulSoup(req.text, "html.parser")
145 username = soup.select("input[name=\"user\"]")[0].get("value")
146 postid = soup.select("input[name=\"id\"]")[0].get("value")
147 aid = soup.select("input[name=\"aid\"]")[0].get("value")
148 print("Name: " + username + " Id: " + postid)
149
150 print(repr(proxies))
151 name, mail = next(names_mail)
152 data = {
153 "187bb954b1e32240d02a385304bf64f3ba4dc8b6": name,
154 "42d90866a91cbdf64121b3316eb470a2172d7773": mail,
155 "user" : username,
156 "id" : postid,
157 "_submit_check" : "1",
158 "e" : "",
159 "aid" : aid
160 }
161 print(name, mail)
162 headers = {
163 "Referer" : BASE_URL + args.id,
164 "User-Agent" : "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0"
165 }
166
167 resp = requests.post(BASE_URL + "petitionsend.php", data=data, cookies=cookies, headers=headers, proxies=proxies)
168 print("<==========> Sending {} <==========>".format(args.request_num))
169 args.request_num -= 1
170 sleep(args.timeout)
171 except Exception as e:
172 print("FAILED: " + str(e))
173 _proxy = next(proxy)
174 original_number -= 1
175 continue
176
177def selenium_option():
178 #from selenium import webdriver
179 #from selenium.webdriver.common.keys import Keys
180 #global args
181 pass
182
183if __name__ == "__main__":
184 main()