2017-06-22 78 views
0

我正在寻找方法来刮去某个网站上的所有表格。这些表格在所有子页面中格式完全相同。问题是,这些子页面的网址是这样的:
url1 ='http .../Tom',
url2 ='http .../Mary',
url3 ='http .../Jason',这样我就不能通过递增地改变url来设置循环。有什么方法可以通过熊猫来解决这个问题吗?是否可以使用熊猫在多个网页上刮取html表格?

+0

你事先知道的网址是什么?你在哪里得到网址? – jarcobi889

+0

你如何在刮use中使用'pandas'? –

+0

您可以尝试使用pd.read_html()方法,但是如果没有页面示例,则很难建议具体的任何内容。那么你能提供一个例子吗? – omdv

回答

0

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

0

我会假设在每个页面的数据实际为HTML格式table元素,并且可以由熊猫进行处理。 (当然还有很多页面显示看起来像表不是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 
+0

欣赏。不幸的是,我已经跟着你的代码,但它返回为:列表索引必须是整数或切片,而不是str。 –

+0

对不起,现在就试试吧。 –

相关问题