from bs4 import BeautifulSoup
import requests
import pandas as pd
url = "https://www.icc-cricket.com/rankings/mens/team-rankings/test"
# puting headers to make a crawler looks human like + using request lib
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit 537.36 (KHTML, like Gecko) Chrome",
"Accept": "text/html,application/xhtml+xml,application/xml; q=0.9,image/webp,*/*;q=0.8"}
response = requests.get(url, headers = headers)
ranking = BeautifulSoup(response.text, "html.parser")
rank = ranking.find("div", {"class":"rankings-block__container rankings-table"})
pos = 1
my_list = []
for team in rank.findAll("td", {"class": "table-body__cell rankings-table__team u-text-left"}):
name = team.text.replace(" ", "")
name = team.text.replace("\n", "")
print("%d"%pos,"%s" % name)
my_list.append([pos, name])
pos +=1
# creting a csv file to insert the data
data_frame = pd.DataFrame(my_list, columns=["Ranking", "Team"])
# you can now use data_frame.head(), data_frame.tail()
# inserting data in to a csv file
data_frame.to_csv("Top 10 cricket teams.csv", )
print(data_frame)