为了账号安全,请及时绑定邮箱和手机立即绑定

获取成都租房信息 - 数据写入

标签:
Python 爬虫

我们用excel保存之前所获取的数据,这里利用xlwt做excel表格操作

1. 数据获取

    之前的数据获取函数中,我们将最后的数据以列表形式保存,这里主要接受当时收集的数据,做解析插入

2. 表格初始化

配置表格的基础属性,加粗、字体号等等

def set_style(name, height, bold=False):
    style = xlwt.XFStyle()
    font = xlwt.Font()
    font.name = name
    font.bold = bold
    font.color_index = 4
    font.height = height
    style.font = font
    return style

3. 数据写入

I. 初始化Workbook对象

    f = xlwt.Workbook()

II. 新建表格

两张表,赶集和自如

sheet1 = f.add_sheet('赶集', cell_overwrite_ok=True)
sheet2 = f.add_sheet('自如', cell_overwrite_ok=True)

III. 生成表头

    对应不同的数据内容,生成相对应的表头,用列表保存表头信息,直接将数据写入第一行的每一列,同时设定列宽

row_zr = ["标题", "标签", "价格(元/月)", "大小", "位置", "网页链接"]
row_gj = ["标题", "简介", "价格(元/月)", "位置", "中介", "网页链接"]
for i in range(0, len(row_gj)):
    sheet1.col(i).width = 256 * 50
    sheet1.write(0, i, row_gj[i], set_style('Times New Roman', 260, True))
for i in range(0, len(row_zr)):
    sheet2.col(i).width = 256 * 50
    sheet2.write(0, i, row_zr[i], set_style('Times New Roman', 260, True))

IV. 写入数据

    初始化一个起始值为1的整数保存行数值,从数据中解析出想要的格式化执行插入这一行(从第一行开始),每次插入之后行值+1,对下一行进行同样操作,因为这里我们的数据是利用嵌套列表构造的,所以需要先取出数据再做列扩展循环

def write_excel(result_gj, result_zr):
    f = xlwt.Workbook()
    sheet1 = f.add_sheet('赶集', cell_overwrite_ok=True)
    sheet2 = f.add_sheet('自如', cell_overwrite_ok=True)
    row_zr = ["标题", "标签", "价格(元/月)", "大小", "位置", "网页链接"]
    row_gj = ["标题", "简介", "价格(元/月)", "位置", "中介", "网页链接"]
    num_gj, num_zr = 1, 1
    default_style = set_style('Times New Roman', 300, False)
    for i in range(0, len(row_gj)):
        sheet1.col(i).width = 256 * 50
        sheet1.write(0, i, row_gj[i], set_style('Times New Roman', 260, True))
    for i in range(0, len(row_zr)):
        sheet2.col(i).width = 256 * 50
        sheet2.write(0, i, row_zr[i], set_style('Times New Roman', 260, True))
    for data in result_gj:
        for i in range(0, len(row_gj)):
            sheet1.write(num_gj, i, data[i], default_style)
        num_gj += 1
    for data in result_zr:
        for i in range(0, len(row_zr)):
            sheet2.write(num_zr, i, data[i], default_style)
        num_zr += 1
    f.save('houses.xls')

图片描述

图片描述

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消