Advertisement
Guest User

Untitled

a guest
Apr 11th, 2019
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. const puppeteer = require('puppeteer');
  2.  
  3. (async () => {
  4. const browser = await puppeteer.launch();
  5. const page = await browser.newPage();
  6. const url = 'https://www.chinabrands.com/category/clearance_cid1337.html?sid=72821714&odr=highdiscount'
  7. await page.goto(url);
  8. await page.screenshot({ path: 'example.png' });
  9.  
  10. function extractItems() {
  11. const extractedSaleElements = Array.from(document.querySelectorAll('#pro-list > ul > li'))
  12. .map(product => {
  13.  
  14. const { title, link, priceAfter, priceBefore, profit } = product;
  15.  
  16. return {
  17. title: product.querySelector('.goods-title').innerText,
  18. link: product.querySelector('a[href]').href,
  19. priceAfter: +product.querySelector('span.my_shop_price').innerText.slice(2, Infinity),
  20. priceBefore: +product.querySelector('span.my_shop_price.market-price').innerText.slice(2, Infinity),
  21. profit: Math.round(
  22. (+product.querySelector('span.my_shop_price.market-price').innerText.slice(2, Infinity) - +product.querySelector('span.my_shop_price').innerText.slice(2, Infinity))
  23. / +product.querySelector('span.my_shop_price.market-price').innerText.slice(2, Infinity) * 100) + '%'
  24.  
  25. }
  26. })
  27. .sort((x, y) => (Math.round(((x.priceAfter - x.priceBefore) / x.priceAfter) * 100)) ? 1 : -1)
  28. .filter(x => x.priceAfter > 10 && x.priceBefore > 70);
  29.  
  30. const items = [];
  31. for (let element of extractedSaleElements) {
  32. items.push(element);
  33. }
  34. return items;
  35. }
  36.  
  37. let items = await page.evaluate(extractItems);
  38.  
  39. console.log(items);
  40.  
  41. await page.goto(items[0].link);
  42. await page.screenshot({ path: 'step1.png' });
  43.  
  44. function purchase() {
  45. const form = document.querySelector('a.addToCart.add-to-cart');
  46. form.click()
  47. }
  48.  
  49.  
  50. await page.evaluate(purchase);
  51. await page.waitFor(4000)
  52.  
  53.  
  54. // await page.evaluate(purchase);
  55.  
  56. await page.screenshot({ path: 'step2.png' });
  57.  
  58. function login() {
  59. const username = document.querySelector('input.custom-text');
  60. const password = document.querySelector('input#password').value = 'kyriakos133'
  61.  
  62. username.value = 'karageo133@gmail.com'
  63. password.value = 'kyriakos133'
  64. }
  65.  
  66. await page.evaluate(login);
  67. await page.waitFor(3000)
  68. await page.screenshot({ path: 'step3.png' });
  69.  
  70. function clickLogin() {
  71. const form = document.querySelector('button#third-party-sign-btn');
  72. form.click()
  73. }
  74.  
  75. await page.evaluate(clickLogin);
  76. await page.waitFor(3000)
  77. await page.screenshot({ path: 'step5.png' });
  78.  
  79. await page.waitFor(5000)
  80. await page.goto(items[0].link);
  81. function pushTO() {
  82. const button= document.querySelector('a.addToCart.add-to-cart');
  83. button.click()
  84. }
  85.  
  86.  
  87. await page.evaluate(pushTO);
  88. await page.waitFor(10000)
  89. await page.screenshot({ path: 'step6.png' });
  90.  
  91.  
  92. await browser.close();
  93. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement