我的目标是编写一个解析器,该解析器将从给定的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