import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
url = "https://www.espncricinfo.com/records/most-runs-in-career-223646"
response = requests.get(url)
soup = BeautifulSoup(response.content,'html.parser')
container = soup.find_all('div',class_='ds-grow')
h1 = container[2].find('h1').get_text()
table = container[2].find('table',class_='ds-w-full')
tbody = table.find('tbody')
rows = tbody.find_all('tr')
players = []
runs = []
for row in rows:
player = row.find_all('td')[0].find('span').get_text(strip=True)
players.append(player)
run = row.find_all('td')[5].find('span').get_text(strip=True)
runs.append(run)
runs_numeric= [float(pop.replace(',', '')) for pop in runs]
data = {"Player":players,"Runs":runs_numeric}
df = pd.DataFrame(data)
df.plot(kind='bar',x='Player',y='Runs',legend=None)