I ran the same exact format for a different website scraper and that worked but for some reason I keep getting an error message for this function. "UnboundLocalError: local variable 'bs' referenced before assignment".
I tried to assign a global variable to bs (the dataframe), the code works but doesn't return anything. I also have tried nested functions but still no luck. This is the 4th time I have used this function format and the other three times they have worked without ever producing the error. Any help would be greatly appreciated.
def barstool(website):
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.get(website)
matches = browser.find_elements_by_class_name('basic-event-row')
sleep(10)
info = []
for match in matches:
info.append(match.text)
y = []
for x in info:
y.append(x.split('\n'))
master = []
for x in y:
for z in x:
if z == '- -':
z == 'N/A'
master.append(z)
removes = ('TODAY', 'TOMORROW', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THUR', 'SPREA', 'TOTA', 'More', 'Bets')
for x in range(len(master))[::-1]:
if master[x].startswith(removes):
master.remove(master[x])
else:
pass
for x in range(len(master)):
if master[x] == '- -':
master.insert(x+1, None)
else:
pass
dic = {}
for x in range(len(master))[0:13:14]:
dic['Away Team'] = master[x]
dic['Home Team'] = master[x+1]
dic['Away Spread'] = master[x+2]
dic['Away Spread Odds'] = master[x+3]
dic['Home Spread'] = master[x+4]
dic['Home Spread Odds'] = master[x+5]
dic['team_delete'] = master[x+6]
dic['Away Moneyline'] = master[x+7]
dic['team2_delete'] = master[x+8]
dic['Home Moneyline'] = master[x+9]
dic['Over'] = master[x+10]
dic['Over Odds'] = master[x+11]
dic['Under'] = master[x+12]
dic['Under Odds'] = master[x+13]
bs = pd.DataFrame(dic, index=[0])
for x in range(len(master))[14::14]:
dic = {}
dic['Away Team'] = master[x]
dic['Home Team'] = master[x+1]
dic['Away Spread'] = master[x+2]
dic['Away Spread Odds'] = master[x+3]
dic['Home Spread'] = master[x+4]
dic['Home Spread Odds'] = master[x+5]
dic['team_delete'] = master[x+6]
dic['Away Moneyline'] = master[x+7]
dic['team2_delete'] = master[x+8]
dic['Home Moneyline'] = master[x+9]
dic['Over'] = master[x+10]
dic['Over Odds'] = master[x+11]
dic['Under'] = master[x+12]
dic['Under Odds'] = master[x+13]
bs2 = pd.DataFrame(dic, index=[0])
bs = bs.append(bs2)
return bs