· 5 years ago · Nov 26, 2020, 02:10 PM
1static void Main(string[] args)
2{
3 GotoPornHub();
4 Console.ReadKey();
5}
6
7private static bool reCaptchav2(ChromeDriver _driver)
8{
9 var data_sitekeyExist = _driver.WaitXPath("//div[@class='g-recaptcha']");
10
11 string data_sitekey = "";
12 if (!data_sitekeyExist)
13 {
14 Console.WriteLine("Not found Google reRaptcha!");
15 return false;
16 }
17 else
18 {
19 data_sitekey = _driver.FindElementByXPath("//div[@class='g-recaptcha']").GetAttribute("data-sitekey");
20 Console.WriteLine($"Google reRaptcha found data_sitekey={data_sitekey}");
21 }
22
23
24 string api_key = "ded32e2de44988ba5bda38922d409fdf";
25 //string request2captchaUrl = $"https://2captcha.com/in.php?key={api_key}&method=userrecaptcha&googlekey={data_sitekey}&pageurl={_driver.Url}";
26
27 string request2captchaUrl = $"https://2captcha.com/in.php?key={api_key}&method=userrecaptcha&invisible=1&googlekey={data_sitekey}&pageurl={_driver.Url}";
28
29 string resultRequest = "";
30 using (var client = new HttpClient())
31 {
32 var response = client.GetAsync($"{request2captchaUrl}").Result;
33
34 if (response.IsSuccessStatusCode)
35 {
36 var responseContent = response.Content;
37
38 // by calling .Result you are synchronously reading the result
39 resultRequest = responseContent.ReadAsStringAsync().Result;
40
41
42 }
43 }
44
45 string response_state = resultRequest.Split('|')[0];
46 Console.WriteLine($"Result request {resultRequest.Split('|')[0]}\n");
47
48 if (resultRequest.Split('|')[0] != "OK")
49 {
50 Console.WriteLine("Something's wrong! Not OK result request");
51 return false;
52 }
53
54 string captcha_key = "";
55
56 for (int i = 0; i < 36; i++) //A time out for the API call, it will terminate after 3 minutes (36 * 5)
57 {
58
59 using (var client = new HttpClient())
60 {
61 var response = client.GetAsync($"https://2captcha.com/res.php?key={api_key}&action=get&id={resultRequest.Split('|')[1]}").Result;
62
63 if (response.IsSuccessStatusCode)
64 {
65 var responseContent = response.Content;
66
67 // by calling .Result you are synchronously reading the result
68 captcha_key = responseContent.ReadAsStringAsync().Result;
69
70
71 }
72 }
73
74 if (captcha_key != "CAPCHA_NOT_READY")
75 {
76 break;
77 }
78 Task.Delay(5000).Wait();
79
80 }
81
82 Console.WriteLine($"Google captcha key{captcha_key}");
83
84 if (captcha_key.Split('|')[0] != "OK")
85 {
86 Console.WriteLine("Something's wrong! Not OK result request captcha ket");
87 return false;
88 }
89
90 File.WriteAllText($@"captcha_key.txt", captcha_key.Split('|')[1]);
91
92
93 //string script = "document.querySelector('#g-recaptcha-response').textContent='" + captcha_key.Split('|')[1] + "'"; //JS script to send the key to the site
94 string script = "document.getElementById('g-recaptcha-response').innerHTML='" + captcha_key.Split('|')[1] + "'";
95 ((IJavaScriptExecutor)_driver).ExecuteScript(script); //Execute the JS script
96
97
98 //script = "___grecaptcha_cfg.clients[0].Dg.callback(" + captcha_key.Split('|')[1] + ")";
99 //((IJavaScriptExecutor)_driver).ExecuteScript(script); //Execute the JS script
100
101 var SignUpExist = _driver.WaitXPath("//input[@class='buttonBase orangeButton big']");
102
103 Console.WriteLine($"Clicking Sign Up button {SignUpExist}");
104
105 if (!SignUpExist)
106 {
107 Console.WriteLine("Error! Sign Up not found!");
108 Console.ReadKey();
109 return false;
110 }
111
112 var SignUp = _driver.FindElementByXPath("//input[@type='submit']");
113
114 Console.WriteLine($"Clicking Sign Up button Click");
115 Console.ReadKey();
116 SignUp.Click();
117
118 return true;
119 _driver.FindElement(By.XPath("//input[@id=\"recaptcha-demo-submit\"]")).Click(); //Click at the submit button }
120
121
122}
123
124 private static void GotoPornHub()
125 {
126 var options = new ChromeOptions();
127
128
129
130 options.AddArguments($"user-data-dir=pornhub6");
131 options.AddArgument($"--user-agent=Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36");
132 options.AddArgument($"window-size=1280,720");
133 options.AddArgument("--window-position=0,0");
134 options.AddArguments($"--proxy-server=185.225.16.142:20285");
135 options.AddArguments($"--lang=en-US");
136
137 //Disable events
138 options.AddUserProfilePreference("webdriver_enable_native_events", false);
139 options.AddArgument("--no-sandbox");
140 options.AddArgument("--remote-debugging-port=0");
141
142
143
144
145 //_driver = new ChromeDriver(service, options);
146 ChromeDriver _driver = new ChromeDriver("C:\\", options);
147
148 Console.WriteLine("Go to pornhub.com");
149
150 _driver.Navigate().GoToUrl(@"https://www.pornhub.com/signup");
151
152
153
154
155 try
156 {
157
158 var emailExists = _driver.WaitXPath("//input[@name='email']");
159
160
161 if (!emailExists)
162 {
163 Console.WriteLine("Error! Login form not found!");
164 return;
165 }
166
167 Console.WriteLine("Typing credentials");
168
169 var emailInput = _driver.FindElementByXPath("//input[@name='email']");
170
171 var usernameInput = _driver.FindElementByXPath("//input[@name='username' and @placeholder='Username (6+ characters)' and @maxlength='18']");
172
173 var passwordInput = _driver.FindElementByXPath("//input[@name='password' and @maxlength='40']");
174
175
176 string NewEmailIDforReg;
177 string NewEmailforReg;
178
179 GetEmailAddress(out NewEmailIDforReg, out NewEmailforReg);
180 Console.WriteLine($"{NewEmailIDforReg} {NewEmailforReg}");
181
182 foreach (char c in NewEmailforReg)
183 {
184 //Task.Delay(rnd.Next(100, 500)).Wait();
185 emailInput.SendKeys(Convert.ToString(c));
186 //Console.WriteLine(c);
187 }
188
189
190 foreach (char c in NewEmailforReg.Substring(0, NewEmailforReg.IndexOf('@')))
191 {
192 //Task.Delay(rnd.Next(100, 500)).Wait();
193 usernameInput.SendKeys(Convert.ToString(c));
194 //Console.WriteLine(c);
195 }
196
197
198
199 foreach (char c in CreatePassword(8))
200 {
201 //Task.Delay(rnd.Next(100, 500)).Wait();
202 passwordInput.SendKeys(Convert.ToString(c));
203 //Console.WriteLine(c);
204 }
205
206
207 Task.Delay(rnd.Next(1000, 5000)).Wait();
208
209 //var SignUpExist = _driver.WaitXPath("//input[@type='submit' and @class='buttonBase orangeButton big']");
210 var SignUpExist = _driver.WaitXPath("//input[@class='buttonBase orangeButton big']");
211
212 Console.WriteLine($"Clicking Sign Up button {SignUpExist}");
213
214 if (!SignUpExist)
215 {
216 Console.WriteLine("Error! Sign Up not found!");
217 return;
218 }
219
220 var SignUp = _driver.FindElementByXPath("//input[@type='submit']");
221
222 Console.WriteLine($"Clicking Sign Up button Click");
223 SignUp.Click();
224
225
226
227 Task.Delay(rnd.Next(1000, 5000)).Wait();
228
229
230 var data_sitekeyExist = _driver.WaitXPath("//div[@class='g-recaptcha']");
231
232 string data_sitekey = "";
233 if (!data_sitekeyExist)
234 {
235 Console.WriteLine("Not found Google reRaptcha!");
236
237 }
238 else
239 {
240 Console.WriteLine("Found Google reRaptcha!");
241 reCaptchav2(_driver);
242
243 SignUp = _driver.FindElementByXPath("//input[@type='submit']");
244
245 Console.WriteLine($"Clicking Sign Up button Click Again");
246 SignUp.Click();
247 }
248
249
250
251
252
253 Console.ReadKey();
254
255 }
256 catch (Exception e)
257 {
258 Console.WriteLine("Failed to login");
259 Console.WriteLine(e);
260 return;
261 //Console.ReadKey();
262 }
263
264
265
266
267 }
268
269private static string CreatePassword(int length)
270{
271 const string valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
272 StringBuilder res = new StringBuilder();
273 Random rnd = new Random();
274 while (0 < length--)
275 {
276 res.Append(valid[rnd.Next(valid.Length)]);
277 }
278 return res.ToString();
279}
280
281 private static void GetEmailAddress(out string NewEmailIDforReg, out string NewEmailforReg)
282{
283 NewEmailIDforReg = "";
284 NewEmailforReg = "";
285
286 try
287 {
288 using (var client = new HttpClient())
289 {
290 //var response = client.GetAsync($"https://api.kopeechka.store/mailbox-get-email?site=pornhub.com&token=583f2194e4c045e58b592482c2b9940e&mail_type=hotmail.com").Result;
291 var response = client.GetAsync($"https://api.kopeechka.store/mailbox-get-email?site=pornhub.com&token=583f2194e4c045e58b592482c2b9940e&mail_type=outlook.com").Result;
292
293 if (response.IsSuccessStatusCode)
294 {
295 var responseContent = response.Content;
296
297 // by calling .Result you are synchronously reading the result
298 string content = responseContent.ReadAsStringAsync().Result;
299
300 //Console.WriteLine(responseString);
301
302 StringReader reader = new StringReader(content);
303 string line = reader.ReadLine();
304
305
306 GetIdNewEmail GetIdNewEmail;
307 GetIdNewEmail = JsonConvert.DeserializeObject<GetIdNewEmail>(line);
308
309 NewEmailforReg = GetIdNewEmail.mail.ToString();
310 NewEmailIDforReg = GetIdNewEmail.id.ToString();
311 Console.WriteLine($"{NewEmailforReg}---{NewEmailIDforReg}--------------");
312 }
313 }
314
315 //return false;
316 }
317 catch (Exception e)
318 {
319 Console.WriteLine("ERROR! Please check rotation link");
320 Console.WriteLine(e);
321 Console.ReadKey();
322
323 }
324}