是否可以使用pandas在多个网页上刮取html表格?

时间:2017-06-22 15:05:11

标签: python pandas beautifulsoup

我正在寻找方法来抓取某个网站上的所有表格。所有子页面中的表格格式完全相同。问题是,这些子页面的网址是这样的:
url1 =' http ... / Tom',
url2 =' http ... / Mary',
url3 =' http ... / Jason',这样我就无法通过逐步改变网址来设置循环。是否有任何可能的方法通过熊猫来解决这个问题?

2 个答案:

答案 0 :(得分:0)

另一个想法是首先使用BeautifulSoup库并从网页获取所有table元素,然后应用pd.read_html()

答案 1 :(得分:0)

我将假设每个页面中的数据实际上都格式化为HTML table元素,并且可以由pandas处理。 (当然,许多看起来像表格的页面显示不是HTML table元素;也可以检查。)

然后处理一个表的代码看起来可能是这样的:

df = pd.read_html(url, header=0)[0]

或者这个:

df = pd.read_html(url)[0]

我假设每个页面上只有一个感兴趣的表格。实际上,您可能还会发现read_html的其他参数可能需要改变。

然后完整的代码将是这样的:

stub_url = 'http:// ...'
dfs = []
for ending in ['Tom', 'Mary', 'Jason']:
    one_df = pd.read_html(stub_url + ending, header=0)[0]
    dfs[ending] = one_df