我有一个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()            #:关闭保存文件


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注