python文件写入excel

需求描述:

将爬取的新闻数据按照、url地址、url Id、新闻标题、新闻内容字段写入excel表

1.安装并导入xlwt模块


2.主要函数介绍

  • enumerate 函数用于遍历序列中的元素以及它们的下标
  • w=xlwt.workbook()创建工作簿,可以指定编码格式
  • shet=w.add_sheet(name)创建Excel的sheet页,并指定页名
  • shet.write(row,col,value,style)写入数据,style可以指定单元格应用样式
  • w.save(filepath)保存文件

3.代码实现

#-!- coding: utf-8 -!-
import re
from numpy import *
from  xlwt import *
#获取新闻数据集
def loadDataSet():
    with open(r'..\dataSet\sogou\news_sohu.dat','r',encoding='utf-8') as f:
        #获取文本全部内容
        data=f.readlines()
        #用于正则匹配
        reDoc='<doc>(.*?)</doc>'
        reContent = r'<content>(.*?)</content>'
        reContenttitle = r'<contenttitle>(.*?)</contenttitle>'
        reURLID = r'<docno>(.*?)</docno>'
        reURL = r'<url>(.*?)</url>'
        #获取每条新闻相关的信息
        r=re.compile(reDoc)
        #正则表达式参数需要字符串形式,所以需要强制转换一下
        dataGroup=r.findall(str(data))
        #列表存放数据
        returnData=[]
        #获取页面URl地址、URlid、新闻标题、新闻内容
        for  i  in range(len(dataGroup)):
            listRow=[]
            listRow.extend(re.findall(reURL,dataGroup[i],re.S|re.M))
            listRow.extend(re.findall(reURLID,dataGroup[i],re.S|re.M))
            listRow.extend(re.findall(reContenttitle,dataGroup[i],re.S|re.M))
            listRow.extend(re.findall(reContent, dataGroup[i],re.S|re.M))
            returnData.append(listRow)
    return returnData

dataSet=loadDataSet()
file=Workbook(encoding='UTF-8')
table=file.add_sheet('newsData')
#表头
tb_head=[u'URL地址',u'URLID',u'新闻标题',u'新闻内容']
for col,title in enumerate(tb_head):
    #行的序号从0开始
    table.write(0,col,title)
for row in range(len(dataSet)):
    for col,v in enumerate(dataSet[row]):
        #row+1避免出现重写
        table.write(row+1,col,v)
file.save('newData')
print('down')
【结果】

猜你喜欢

转载自blog.csdn.net/brave_jcc/article/details/79725064