Sep-24-2018, 06:42 PM
Hi,
I am a Python newbie, I am trying to use Python recursively loop through a list and provide a cumulative value of a metric for each 'match' in a list.
My code is nearly there, but I have an issue where I am getting the same (incorrect) value every single time for each of the items in the list.
Any tips where this is going wrong? I am pretty sure it is the for data in soup.findAll('div',{'class':'ml1-SoccerStatsBar '}): line but not sure why.
I am a Python newbie, I am trying to use Python recursively loop through a list and provide a cumulative value of a metric for each 'match' in a list.
My code is nearly there, but I have an issue where I am getting the same (incorrect) value every single time for each of the items in the list.
Any tips where this is going wrong? I am pretty sure it is the for data in soup.findAll('div',{'class':'ml1-SoccerStatsBar '}): line but not sure why.
#use Selenium & Beautiful Soup from selenium import webdriver import time from bs4 import BeautifulSoup #define URL/driver my_url = "https://www.bet365.com/#/IP/" driver = webdriver.Edge() driver.get(my_url) #allow a sleep of 10 seconds time.sleep(10) #parse the page pSource= driver.page_source soup = BeautifulSoup(pSource, "html.parser") #containers tag - per match containers = soup.findAll("div", {"class": "ipn-TeamStack "}) for container in containers: match = container.find_all('div') texts = [div.text for div in match] #Total Match Shots cumul_match_shots = 0 for data in soup.findAll('div',{'class':'ml1-SoccerStatsBar '}): for result in data.find_all('span'): a = result.text if len(a) > 0: cumul_match_shots += int(a) #print out values print(texts) print(cumul_match_shots) #close the webpage driver.close()