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)