Я в значительной степени новичок в Python, но я собираюсь создать инструмент для очистки веб-страниц, который будет извлекать данные из таблицы HTML онлайн и распечатывать их в формате CSV в том же формате.
Я пытаюсь удалить данные с веб-страницы.Но он дает мне пустой массив, хотя в нем есть данные.Как извлечь эти данные?
enter code here
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = "https://www.forbes.com/global2000/list/#tab:overall"
page = urlopen(url)
soup = BeautifulSoup(page)
text = soup.get_text()
print(soup.prettify())
all_tables=soup.find_all('tbody')
print(all_tables)
right_table=soup.find('tbody',{"class":'list-item-template'})
A=[]
B=[]
C=[]
D=[]
E=[]
F=[]
G=[]
H=[]
for row in right_table.findAll("tr"):
cells = row.findAll('td')
print(len(cells))
states=row.findAll('th') #To store second column data
if len(cells)==8: #Only extract table body not heading
A.append(cells[0].find(text=True))
# B.append(states[0].find(text=True))
B.append(cells[1].find(text=True))
C.append(cells[2].find(text=True))
D.append(cells[3].find(text=True))
E.append(cells[4].find(text=True))
F.append(cells[5].find(text=True))
G.append(cells[6].find(text=True))
H.append(cells[7].find(text=True))
df=pd.DataFrame(A,columns=['IMAGE'])
df['RANK']=B
df['NAME']=C
df['COUNTRY']=D
df['REVENUE']=E
df['PROFITS']=F
df['ASSETS']=G
print(df)
Я получаю этот вывод:
![enter image description here](https://i.stack.imgur.com/v4wxo.png)