怎么将html转换成表格,如何将html中的表格数据保存下来

有时候我们想爬的数据是表格样式,(网页好丑,大家将就一下)如下图。好消息是在页面html中能找到对应的数据

216153959_1_20210223023129584_wm

但坏消息是虽然数据存在于网页内部,没有可用来获取原始数据的API。 所以,现在你必须花费精力去解析网页。 这并不难,但是浪费时间,你可以用更加事半功倍的方式去解决。

216153959_2_20210223023129880_wm

pandas

世上都说Python大法好,pandas库提供了内置的方式可以读取html文件,并从中抽取出表数据。

pandas会在网页中寻找任何符合html表形式的数据,并将其转化WieDataFrame对象作为返回结果。

Code

pandas使用方法import pandas as pd

#header=1 显示列名;header=0,不显示pd.read_html(url,header)

实战代码开始import pandas as pdurl = "http://hz.house.ifeng.com/detail/2014_10_28/50087618_1.shtml"data = pd.read_html(url,header=1)print(data)

注意啊,这里得到的数据格式是list。[      序号          楼盘名称   城区  签约套数  预定套数    签约面积(㎡)  签约均价(元/㎡)    0    1.0        龙湖春江郦城   滨江    18     0    2178.61    23757.0    1    2.0        海威钱塘之星   滨江    13     0    629.55㎡    17398.0    2    3.0        大家运河之星   拱墅    12     0   1052.72㎡    10457.0    3    4.0        保利城市果岭   下沙     8     0    743.05㎡    10457.0        ..   ...           ...  ...   ...   ...        ...        ...    85  86.0        广宇锦绣桃源   拱墅     1     0     86.44㎡    12473.0    86  87.0       景瑞申花壹号院   拱墅     1     0     89.18㎡    21529.0    87  88.0        复地黄龙和山   西湖     0     1         0㎡        0.0    88  89.0         中粮方圆府   下城     0     1         0㎡        0.0    89  90.0          东方铭楼   下沙     0    16         0㎡        0.0    90   NaN         总计签约:  主城区   216    40  21755.55㎡        NaN        [91 rows x 7 columns],    2

DataFrame对象

df.to_json()

而只要知道数据存储在DataFrame中,一切都变的简单起来。 比如我很希望数据以json记形式输出,很简单!这只是一行代码的事情。import pandas as pddata = pd.read_html(url,header=1)#data数据是list类型,要先转化为dataframedf = pd.DataFrame(data)df.to_json(orient='records')

df.to_csv()

dataframe对象,还可以将数据输出保存为csv文件import pandas as pddata = pd.read_html(url,header=1)df = pd.DataFrame(data)#encoding为gbk编码,可以在ofiice excell中看中文不乱吗df.to_csv('data.csv',encoding='gbk')

这里输出的虽然是csv文件,但是没有达到预期,不晓得是怎么回事。建议大家对数据做一下处理再保存到csv中。

216153959_3_20210223023130193_wm

数据采集

文本处理分析

图片数据处理

其他

216153959_4_20210223023130427_wm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值