几页的pd.read_html

时间:2017-07-16 08:08:27

标签: python pandas dataframe

我有几页要抓取。每页都有一张桌子。这就是我想要得到的。并且页面的网址仅与最后一个数字不同。反正我是否可以使用pd.read_html来获取所有表并将表合并到一个表中?

import pandas as pd
url_head = 'http://www.kmzyw.com.cn/jiage/today_price.html?pageNum=1'
data =pd.read_html(url)[0]

2 个答案:

答案 0 :(得分:1)

您可以将每个网址输出添加到循环中的列表中,然后在末尾使用pd.concat将列表合并到一个大型数据框中。

import pandas as pd

df_list = []
for i in range(1, N):
    url_head = 'http://www.kmzyw.com.cn/jiage/today_price.html?pageNum=%d' %i
    df_list.append(pd.read_html(url)[0])

df = pd.concat(df_list)

N替换为您拥有的网页数加1。

答案 1 :(得分:0)

@ cs95感谢您以上的回答。这不是一个答案,但我想为此URL实现此功能,但它只会为第一页拉出重复的行。我还要补充什么? rawurl https://finance.yahoo.com/screener/predefined/undervalued_growth_stocks?count=100&offset=0

import pandas as pd

df_list = []
for i in range(1, 3):
    url = 'https://finance.yahoo.com/screener/predefined/undervalued_growth_stocks?count=100&offset=%d' %i
    df_list.append(pd.read_html(url)[0])

df = pd.concat(df_list)