player.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from dataclasses import dataclass, field
  2. from typing import List, Dict
  3. from selenium import webdriver
  4. from selenium.webdriver.common.keys import Keys
  5. from selenium.webdriver.common.by import By
  6. from datetime import datetime
  7. import pandas as pd
  8. from config import Config
  9. @dataclass
  10. class Player():
  11. url:str = 'https://play.boobylegends.com/player/'
  12. Cards:List[dict] = field(default_factory=list)
  13. asOf:datetime = datetime.utcnow()
  14. df:pd.DataFrame = field(default_factory=pd.DataFrame)
  15. def fetchData(self):
  16. driver = webdriver.Chrome()
  17. driver.get(self.url)
  18. driver.add_cookie(Config["cookie"])
  19. driver.get(self.url)
  20. self.asOf=datetime.utcnow()
  21. driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
  22. collection=driver.find_element(By.CLASS_NAME, 'container-collection')
  23. cards=collection.find_elements(By.CLASS_NAME, 'wrapper-card')
  24. for card in cards:
  25. Card={}
  26. Card['card-num']=int(card.find_element(By.CLASS_NAME,'pornstar-number').text)
  27. Card['name']=card.find_element(By.TAG_NAME,'h2').text
  28. Card['card-id'] = int(card.get_attribute('card-id'))
  29. Card['phid'] = card.get_attribute('phid')
  30. Card['level'] = card.get_attribute('level')
  31. Card['link'] = card.get_attribute('href')
  32. Card['level']=card.find_element(By.CLASS_NAME,'pornstar-status').text
  33. try:
  34. Card['stock']=card.find_element(By.CLASS_NAME,'card-nb').text
  35. except:
  36. Card['stock']="Quantity Not Found"
  37. self.Cards.append(Card)
  38. driver.close()
  39. self.loadDF()
  40. def loadDF(self):
  41. self.df=pd.DataFrame(self.Cards)
  42. self.df.sort_values(by='card-num', ascending=True, inplace=True)
  43. def show(self):
  44. pdf=self.df.drop(['link','card-id','phid'], axis=1)
  45. print(pdf.to_string(index=False))