Advertisement
Guest User

Untitled

a guest
Mar 17th, 2019
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.42 KB | None | 0 0
  1. const fse = require('fs-extra');
  2. const puppeteer = require("puppeteer-extra")
  3.  
  4. // add stealth plugin and use defaults (all evasion techniques)
  5. const pluginStealth = require("puppeteer-extra-plugin-stealth")
  6. puppeteer.use(pluginStealth())
  7.  
  8. const nodemailer = require("nodemailer");
  9.  
  10.  
  11. function sleep(ms) {
  12. return new Promise(resolve => setTimeout(resolve, ms));
  13. }
  14.  
  15. function isEmptyObject(obj) {
  16. for (var key in obj) {
  17. if (Object.prototype.hasOwnProperty.call(obj, key)) {
  18. return false;
  19. }
  20. }
  21. return true;
  22. }
  23.  
  24. async function getlinks() {
  25. const browser = await puppeteer.launch({headless: false});
  26. const page = await browser.newPage();
  27. await page.goto('https://www.facebook.com/search/101881036520836/places-in/124816677590074/places/intersect/');
  28. autoScroll(page);
  29. await sleep(500000);
  30. var links = await page.$$eval('ul.uiList._4kg._6-i._6-h._6-j ._2oqr a', as => as.map(a => a.href));
  31. console.log(links)
  32. var json = JSON.stringify(links);
  33. fse.outputFile('files/links.json', json)
  34. }
  35. // getlinks();
  36. async function getemail() {
  37. var links = [];
  38. const browser = await puppeteer.launch({headless: false});
  39. const page = await browser.newPage();
  40. // await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25');
  41. // await page.setViewport({ width: 414, height: 736});
  42. var le = [];
  43. for (var li of links) {
  44. // console.log('going')
  45. await page.goto(li+'about');
  46. var com = {};
  47.  
  48. try {
  49. var emails = await page.$$eval('._4bl9', as => as.map(a => a.innerText));
  50. for (email of emails) {
  51. if (email.includes('@')) {
  52. // console.log(email);
  53. com['email'] = email;
  54. break;
  55. }
  56. }
  57. } catch (e) {
  58. console.log('email not found')
  59. }
  60. try {
  61. var company = await page.$eval('._64-f', e => e.innerText);
  62. com['company'] = company;
  63. } catch (e) {
  64. // console.log('company name')
  65. }
  66. le.push(com);
  67. console.log(le);
  68.  
  69. var json = JSON.stringify(le);
  70. fse.outputFile('files/company2.json', json)
  71.  
  72. }
  73. }
  74. // getemail();
  75. async function sendmail() {
  76. var company = [];
  77. for (var com of company) {
  78. // console.log(com['Email']);
  79. if (!isEmptyObject(com['Email'])) {
  80. let transporter = nodemailer.createTransport({
  81. host: "smtp.sendgrid.net",
  82. port: 465,
  83. secure: true, // true for 465, false for other ports
  84. auth: {
  85. user: 'r3tr0tech', // generated ethereal user
  86. pass: 'oneplus6T^' // generated ethereal password
  87. }
  88. });
  89. com['First'] = com['First'].substring(0, com['First'].indexOf(' '));
  90. var subject = '';
  91. if (com['Company'].includes('/') || com['Company'].includes('Attorney at Law')) {
  92. subject = com['First']+' about your attorney company';
  93. } else {
  94. subject = com['First']+' About '+com['Company'];
  95. }
  96. let mailOptions = {
  97. from: '"R3tr0" <info@r3tr0.tech>', // sender address
  98. to: com['Email'], // list of receivers
  99. subject: subject,
  100. text: 'Hello,\n' +
  101. '\n' +
  102. 'Let me first introduce my self, I have been working as a web designer/developer for about 4 years. I have recently launched a start-up company and I am providing modern websites for law firms & attorneys at a very (I MEAN A VERY) low cost, no one\'s gonna do this cheap.\n' +
  103. '\n' +
  104. 'Here\'s what you\'re going to get : \n' +
  105. '\n' +
  106. 'Full website creation\n' +
  107. '5-10 pages\n' +
  108. 'Social networks integration\n' +
  109. 'Contact page with Google Map\n' +
  110. 'Responsive design and supports every device\n' +
  111. 'And more features, just say the word!\n' +
  112. 'If you want a new modern looking, responsive device friendly for your contractor law company or you want to revolutionize your current site, then I\'m the guy!\n' +
  113. '\n' +
  114. 'You can know more about my service from this link https://www.fiverr.com/share/xeWva\n' +
  115. '\n' +
  116. '100% money back guaranteed, if you don\'t like my work then you can get your money back, give my service a try, I\'m sure you\'ll love it!\n' +
  117. '\n' +
  118. 'P.S: Client\'s satisfaction is my number one priority, I will do my best to satisfy you.\n' +
  119. '\n' +
  120. ' \n' +
  121. '\n' +
  122. 'If you don\'t want to receive any email from me then please reply \'No\'.\n' +
  123. '\n' +
  124. ' \n' +
  125. '\n' +
  126. 'Thank you.\n' +
  127. '\n' +
  128. 'r3tr0.tech',
  129. html: `<p>Hello ${com['First']},</p><p>Let me first introduce my self, I have been working as a web designer/developer for about 4 years. I have recently launched a start-up company and I am providing modern websites for law firms &amp; attorneys at a very (I MEAN A VERY) low cost, no one's gonna do this cheap.</p><p>Here's what you're going to get :&nbsp;</p><ul><li>Full website creation</li><li>5-10 pages</li><li>Social networks integration</li><li>Contact page with Google Map</li><li>Responsive design and supports every device</li><li>And more features, just say the word!</li></ul><p>If you want a new modern looking, responsive device friendly for your contractor law company or you want to revolutionize your current site, then I'm the guy!</p><p>You can know more about my service from this link&nbsp;<a href="https://www.fiverr.com/share/xeWva">https://www.fiverr.com/share/xeWva</a></p><p><span style="color: #ff0000;"><strong>100% money back guaranteed, if you don't like my work then you can get your money back, give my service a try, I'm sure you'll love it!</strong></span></p><p>P.S: Client's satisfaction is my number one priority, I will do my best to satisfy you.</p><p>&nbsp;</p><p><strong>If you don't want to receive any email from me then please reply 'No'.</strong></p><p>&nbsp;</p><p>Thank you.</p><p>r3tr0.tech</p>` // html body
  130.  
  131.  
  132. };
  133. try {
  134. let info = await transporter.sendMail(mailOptions)
  135. } catch (e) {
  136. console.log('fail')
  137. }
  138. console.log("Message sent: %s", com['Email']);
  139. }else {
  140. console.log('email not found');
  141. }
  142. await sleep(1000);
  143. }
  144. }
  145. // sendmail()
  146.  
  147. async function mississipibar() {
  148. var clients = [];
  149. const browser = await puppeteer.launch({headless: false});
  150. const page = await browser.newPage();
  151. await page.goto('https://www.msbar.org/lawyer-directory.aspx?type=7&term=B', {timeout : 400000});
  152. var list = await page.$$('section.LawyerInformation.cf');
  153. for (var li of list) {
  154. var name = await li.$$('.DataHolder')
  155. var i = 0;
  156. var client = {};
  157. for (var n of name) {
  158. var text = await (await n.getProperty('textContent')).jsonValue();
  159. text = text.trim();
  160. // console.log(text);
  161. if (i == 0) {
  162. client['First'] = text
  163. i++;
  164. } else if (i == 1) {
  165. client['Company'] = text;
  166. i++;
  167. } else if (text.includes('@')) {
  168. client['Email'] = text;
  169. i++;
  170. }
  171. clients.push(client);
  172. }
  173. }
  174. clients = [...new Set(clients)]
  175.  
  176. }
  177. // mississipibar();
  178.  
  179. async function fiverr() {
  180. const browser = await puppeteer.launch({headless: false, defaultViewport: null, slowMo:10});
  181. const page = await browser.newPage();
  182. await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');
  183. await page.goto('https://www.fiverr.com');
  184. var i = 0;
  185. var n = 1;
  186. //var links = ['https://www.fiverr.com/users/pythonphpjs/seller_dashboard','https://www.fiverr.com/users/pythonphpjs/manage_orders?source=header_navigation','https://www.fiverr.com/users/pythonphpjs/manage_gigs','https://www.fiverr.com/users/pythonphpjs/seller_analytics_dashboard','https://www.fiverr.com/users/pythonphpjs/balance/sales','https://www.fiverr.com/users/pythonphpjs/balance/sales','https://www.fiverr.com/users/pythonphpjs/requests',]
  187. var links = ['//*[@id="Header-component"]/header/div/div/nav[1]/ul/li[3]/a','//*[@id="Header-component"]/header/div/div/nav[1]/ul/li[4]/a','//*[@id="Header-component"]/header/div/div/nav[1]/ul/li[5]/a','//*[@id="Header-component"]/header/div/div/nav[1]/ul/li[6]/a']
  188. var time = [1,2,3,4,5];
  189. while (i < n) {
  190. var text = "";
  191. var possible = "56789";
  192.  
  193. text = time[Math.floor(Math.random()*time.length)];
  194. var item = links[Math.floor(Math.random()*links.length)];
  195. text = parseInt(text);
  196. console.log('waiting for '+text+' going to '+item);
  197. try {
  198. var logo = await page.$x('//*[@id="Header-component"]/header/div/div/a');
  199. await logo[0].click();
  200. console.log('Click');
  201. } catch (e) {
  202. page.reload();
  203. }
  204. await sleep(text*60000);
  205. try {
  206. const linkHandlers = await page.$x(item);
  207. await linkHandlers[0].click();
  208. console.log('Click');
  209. } catch(e) {
  210. page.reload();
  211. }
  212. }
  213.  
  214. console.log('waited');
  215.  
  216. }
  217. fiverr();
  218.  
  219. async function linkedin() {
  220. const browser = await puppeteer.launch({headless: false});
  221. const page = await browser.newPage();
  222. await sleep(30000);
  223. await page.goto('https://www.linkedin.com/search/results/people/?facetGeoRegion=%5B%22us%3A0%22%5D&facetIndustry=%5B%224%22%5D&facetNetwork=%5B%22F%22%2C%22S%22%2C%22O%22%5D&keywords=ceo%20web%20developer%20software&origin=GLOBAL_SEARCH_HEADER&page=3');
  224. autoScroll(page);
  225. var u = 0;
  226. var n = 1;
  227. var leads = [];
  228. while(u < n){
  229. var j = 0;
  230. await sleep(10000);
  231. var links = await page.$$('.search-result__info');
  232. for (var li of links) {
  233. var link = {};
  234. try {
  235. link['link'] = await li.$eval('a', e => e.getAttribute('href'));
  236. // console.log(link);
  237. } catch (e) {
  238. link['link'] = null;
  239. }
  240. try {
  241. link['name'] = await li.$eval('span.name.actor-name', e => e.innerText);
  242. } catch (e) {
  243. link['name'] = null;
  244. }
  245. leads.push(link);
  246. j++;
  247. if (j >= 10) {
  248. break;
  249. }
  250. }
  251. console.log('here');
  252. try {
  253. await page.click('.artdeco-pagination__button.artdeco-pagination__button--next');
  254. console.log('clcik')
  255. } catch (e) {
  256.  
  257. }
  258. leads = [...new Set(leads)];
  259. console.log(leads.length);
  260. var json = JSON.stringify(leads);
  261. fse.outputFile('files/clients.json', json)
  262. }
  263. }
  264.  
  265. async function google() {
  266. const browser = await puppeteer.launch({headless: false});
  267. const page = await browser.newPage();
  268. // await sleep(30000);
  269. await page.goto('http://google.com')
  270. // autoScroll(page);/
  271. await page.goto('https://www.google.com/search?q=site%3Alinkedin.com+intitle%3Aceo+%22web%20development%22++%22new%20york%22++%22Honors+%26+Awards%22&oq=site%3Alinkedin.com&start=0');
  272. await sleep(30000);
  273. var u = 1;
  274. var n = 30;
  275. var leads = [];
  276. while(u < n){
  277. var j = 0;
  278. // await sleep(10000);
  279. await page.goto('https://www.google.com/search?q=site%3Alinkedin.com+intitle%3Aceo+%22web%20development%22++%22new%20york%22++%22Honors+%26+Awards%22&oq=site%3Alinkedin.com&start='+u*10);
  280. console.log('SRG G')
  281. var links = [];
  282. links = await page.$$('.srg .g');
  283. for (var li of links) {
  284. console.log('here');
  285. var link = {};
  286. try {
  287. link['link'] = await li.$eval('a', e => e.getAttribute('href'));
  288. // console.log(link);
  289. } catch (e) {
  290. link['link'] = null;
  291. }
  292. try {
  293. link['name'] = await li.$eval('h3', e => e.innerText);
  294. } catch (e) {
  295. link['name'] = null;
  296. }
  297. console.log(link);
  298. leads.push(link);
  299. }
  300. // leads = [...new Set(leads)];
  301. console.log(leads);
  302. await sleep(20000);
  303. try {
  304. await page.click('#pnnext');
  305. } catch (e) {
  306. await sleep(30000)
  307. }
  308. u++;
  309. var json = JSON.stringify(leads);
  310. fse.outputFile('files/google.json', json)
  311. }
  312. }
  313. // google()
  314. // linkedin()
  315. async function autoScroll(page){
  316. await page.evaluate(async () => {
  317. await new Promise((resolve, reject) => {
  318. console.log('scrolling...');
  319. var totalHeight = 0;
  320. var distance = 500;
  321. var timer = setInterval(() => {
  322. console.log('testing here')
  323. var elmnt = document.getElementsByClassName("pbNvD");
  324. console.log(elmnt,' element')
  325. var scrollHeight = elmnt.scrollHeight;
  326. console.log(scrollHeight);
  327. window.scrollBy(0, distance);
  328. totalHeight += distance;
  329. if(totalHeight >= scrollHeight){
  330. clearInterval(timer);
  331. resolve();
  332. }
  333. }, 1000);
  334. });
  335. });
  336. }
  337. async function blockImages(page) {
  338. page.on('request', interceptedRequest => {
  339. if (interceptedRequest.url().endsWith('.png') || interceptedRequest.url().endsWith('.jpg')){
  340. interceptedRequest.abort();
  341. } else{
  342. interceptedRequest.continue();
  343. }
  344. });
  345. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement