Guest User

Untitled

a guest
Nov 12th, 2021
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. # Replace EVERY "<>" with the correct content (should be 3)
  2. import asyncio
  3. from pyppeteer import launch
  4. import requests
  5.  
  6.  
  7. threadName = "<>"
  8. fileName = "store.txt"
  9. webhookUrl = "<>"
  10. crawlUrl = '<>'
  11.  
  12.  
  13. async def getPostCount(threadName):
  14.     browser = await launch(headless=True)
  15.     page = await browser.newPage()
  16.     await page.goto(crawlUrl, {'waitUntil' : 'domcontentloaded'})
  17.  
  18.     await page.waitFor(2000) # wait for js
  19.     namesAndComments = await page.evaluate('''() => {
  20.        namesAndComments = [...document.querySelector("table").querySelector("tbody").querySelectorAll("tr")].map(e => [e.children[0].innerText, e.children[4].innerText]);
  21.        return namesAndComments;
  22.            
  23.    }''')
  24.  
  25.     for pair in namesAndComments:
  26.         if pair[0] == threadName:
  27.             toReturn = pair[1]
  28.     await browser.close()
  29.     return toReturn
  30.  
  31. async def main():
  32.     try:
  33.         file = open(fileName, "r")
  34.         numPosts = int(file.read())
  35.         file.close()
  36.     except:
  37.         numPosts = -1
  38.     newNumPosts = int(await getPostCount(threadName))
  39.     if(newNumPosts > numPosts):
  40.         print("number changed")
  41.         data = {"content": f"New post(s) created! [{numPosts}] -> [{newNumPosts}]"}
  42.         numPosts = newNumPosts
  43.         requests.post(webhookUrl, data=data)
  44.  
  45.     print(numPosts)
  46.     file = open(fileName, "w+")
  47.     file.write(str(numPosts))
  48.  
  49.     file.close()    
  50.  
  51. asyncio.get_event_loop().run_until_complete(main())
Advertisement
Add Comment
Please, Sign In to add comment