我的目标是编写一个解析器,该解析器将从给定的Wikipedia URL收集所有表数据。
我一直在尝试使用pandas.read_html方法从示例维基百科页面收集所有表。不幸的是,它似乎没有从页面中收集所有表。这是我的代码:

inputurl = "https://en.wikipedia.org/wiki/France" dflist = pd.read_html(inputurl, attrs={"class": "wikitable"}) print("Number of parsed tables: ", len(dflist)) for parsedtable in dflist: print("Collected table:") print(parsedtable )

问题是仅返回2个表,而此页面中有4个以上的表。如何改善收集所有代码的代码?
谢谢。

最佳答案

看来您需要删除attrs

inputurl = "https://en.wikipedia.org/wiki/France"
dflist = pd.read_html(inputurl)
print("Number of parsed tables: ", len(dflist))
Number of parsed tables:  40


在检查页面的html代码后,有3个带有class='wikitable'的表,第三种需要指定两个类:

inputurl = "https://en.wikipedia.org/wiki/France"
dflist = pd.read_html(inputurl, attrs={"class": ["wikitable","wikitable sortable"]})
print("Number of parsed tables: ", len(dflist))
Number of parsed tables:  3

10-06 14:44