赞
踩
我有一个HTML文件保存在本地,我需要爬取里面的某些数据并将爬取到的部分数据存储进Excel表中
我的解决思路如下:
实现代码如下:
- #coding:utf-8
- from lxml import etree
- import xlsxwriter #:载入模块
- #解析本地文件使用 etree.parse
- parser = etree.HTMLParser(encoding='utf-8')
- tree = etree.parse('1.html',parser=parser)
-
- #这里可以根据源文件的格式以及自己要爬取的数据去改
- list1 = tree.xpath('//body/div/div/div/table/tbody/tr/td')
-
- #返回标签内容 text()
- list2 = tree.xpath('//body/div/div/div/table/tbody/tr/td/text()')
- #按照步长17去分割列表
- r = [list2[i:i+17] for i in range(0,len(list2),17)]
- # print(r)
-
- workbook = xlsxwriter.Workbook('1.xlsx') #:新建名为1的excel文件
- worksheet = workbook.add_worksheet() #:新建表
- worksheet.write('A1','手机号') #:在A1写入100,只能单个写入
- worksheet.write('B1','姓名') #:按行逐一写入列表a,多个写入
- worksheet.write('C1','余额') #:按行逐一写入列表a,多个写入
- worksheet.write('D1','卡类型') #:按行逐一写入列表a,多个写入
- worksheet.write('E1','开卡时间') #:按行逐一写入列表a,多个写入
-
- '''
- 循环,将二维列表中的数据写入到Excel中,这里要注意的是,因为列名占了一行,所以
- 行的下标要+1
- '''
- for i in range(0,len(r)):
- worksheet.write(i+1,0,r[i][0])
- worksheet.write(i+1,1,r[i][1])
- worksheet.write(i+1,2,r[i][2])
- worksheet.write(i+1,3,r[i][4])
- worksheet.write(i+1,4,r[i][12])
-
- workbook.close() #:关闭并保存文件
-
-

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。