从多表wikipedia中删除表

2024-04-19 19:37:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从这个url中删除表 wikipedia。那里有5张不同的桌子。但我的目标是这里显示的第一张表。它没有太多的标识,那个表只包含这个标识

class="wikitable sortable jquery-tablesorter"

其中另一个表具有相同的标识。我看到一些消息来源,我应该在id之前得到它。但是这个表没有id

这个

My_table = soup.find('table',{'class':'wikitable sortable'})

我现在就是这样刮的

问题:

我们如何只选择没有id的表


Tags: idurl目标mytablewikipediajquery标识
3条回答

我会这样做:

import pandas as pd
url = 'https://id.wikipedia.org/wiki/Demografi_Indonesia#Jumlah_penduduk_menurut_provinsi'
df_list = pd.read_html(url)
df = df_list[1]
print(df)

您可以使用soup.find_all('table')[1]选择第一个表

from bs4 import BeautifulSoup
import requests 

url = "https://id.wikipedia.org/wiki/Demografi_Indonesia#Jumlah_penduduk_menurut_provinsi"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
table = soup.find_all('table')[1]
rows = table.find_all('tr')
row_list = list()

for tr in rows:
    td = tr.find_all('td')
    row = [i.text for i in td]
    row_list.append(row)

print(row_list[1:])

获取所有表并存储在数组中,然后从[0]索引获取表。通过这种方式,您可以提取第一个表,而不需要任何id

相关问题 更多 >