1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- from dataclasses import dataclass, field
- from typing import List, Dict
- from selenium import webdriver
- from selenium.webdriver.common.keys import Keys
- from selenium.webdriver.common.by import By
- from datetime import datetime
- import pandas as pd
- from config import Config
- @dataclass
- class Player():
- url:str = 'https://play.boobylegends.com/player/'
- Cards:List[dict] = field(default_factory=list)
- asOf:datetime = datetime.utcnow()
- df:pd.DataFrame = field(default_factory=pd.DataFrame)
- def fetchData(self):
- driver = webdriver.Chrome()
- driver.get(self.url)
- driver.add_cookie(Config["cookie"])
- driver.get(self.url)
- self.asOf=datetime.utcnow()
- driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
- collection=driver.find_element(By.CLASS_NAME, 'container-collection')
- cards=collection.find_elements(By.CLASS_NAME, 'wrapper-card')
- for card in cards:
- Card={}
- Card['card-num']=int(card.find_element(By.CLASS_NAME,'pornstar-number').text)
- Card['name']=card.find_element(By.TAG_NAME,'h2').text
- Card['card-id'] = int(card.get_attribute('card-id'))
- Card['phid'] = card.get_attribute('phid')
- Card['level'] = card.get_attribute('level')
- Card['link'] = card.get_attribute('href')
- Card['level']=card.find_element(By.CLASS_NAME,'pornstar-status').text
- try:
- Card['stock']=card.find_element(By.CLASS_NAME,'card-nb').text
- except:
- Card['stock']="Quantity Not Found"
- self.Cards.append(Card)
- driver.close()
- self.loadDF()
- def loadDF(self):
- self.df=pd.DataFrame(self.Cards)
- self.df.sort_values(by='card-num', ascending=True, inplace=True)
- def show(self):
- pdf=self.df.drop(['link','card-id','phid'], axis=1)
- print(pdf.to_string(index=False))
|