之前为了进行模型训练,在各大新闻网站上爬取了大量新闻,爬取的数据存在了txt文档中。为了日后调用数据方便,打算将数据转存入csv文件。本来想修改一下爬虫的保存方法,但鉴于需重新爬取外网新闻且最近梯子不稳定,打算写个python程序直接导数据。
思路:
- 观察新闻数据的特点,均以新闻发布日期开头,随后是新闻发布事件,最后是新闻标题和正文,每行开头若是‘2020-’,则该行为一条新的新闻,若开头不是‘2020-’, 则该行为上一条新闻的后半部分。
- 创建一个新列表,提取txt中 的每行数据作为每一项存入其中。
- 遍历列表,若某项开头为‘2020-’,则切片提取[0:10]为该新闻发布日期,[11:19]为该新闻发布时间,[21:]为该新闻的正文。将提取出的新闻的每部分加入新列表,为之后存入csv的每一列做准备。
- 若某项开头不为‘2020-’, 则该行为上一条新闻的后半部分,直接将其添加到上一条新闻内容的后面。
- 创建一个新的csv文件,按照新闻编号,新闻发布日期,新闻发布时间,新闻正文为四列,从个刚刚创建的新闻各部分列表传入数据。
代码:
import csv
# add each line in the txt to a list as an item
def process_news(path):
processed_news = [] # create a list to contain lines from the txt
with open(path, "r", encoding='utf-8') as f:
for line in f.rea