编辑的福音——一款用python编写的文字素材采集分析工具

笔者渔鱼之前做文字编辑,写稿时总感觉文字素材的收集整理会占用大量时间。往往确定一个主题后,先后会在百度、各种门户甚至app内容平台去找相关材料。找不到很多又很疲劳,就想如果能有个工具,在网上各个地方快速收集文字素材,还能下载到本地做批量分析,那该多好。写稿时如果有大量相关文字素材可供选择,岂不事半功倍!

百度很久都没找到类似的工具,由于之前对python有些了解,想想用python应该可以实现我要的功能,于是就下决心现学现卖,自己动手搞一个文字采集分析工具。

经过一番分析,大致的用例描述如下:

  1. 编辑先去找内容源,比如渔鱼想做财经方面的内容,就可以去一些财经门户或者财经类的微信公众号去找内容。
  2. 最终需要采集的是详情页的内容,但之前先要从列表页批量搞到详情页的url
  3. 每个详情页的内容能单独采集到本地的一个word文件中,采集的内容包括:标题、内容、发布时间
  4. 采集的同时,还能提取每篇文章的高频词,以及文章中最有代表性的三个句子,同样保存在word文件中
  5. 最终Word文件的内容格式是这样:编辑的福音——一款用python编写的文字素材采集分析工具
  6. 字段解释:编辑的福音——一款用python编写的文字素材采集分析工具
  7. 批量采集的文章放在一个文件夹(article)中,word文件标题形式为{articleId}_{title}:编辑的福音——一款用python编写的文字素材采集分析工具
  8. 以上算是完成了采集,采集完之后要将word中的内容写入MySQL数据库article表中。同时将已被写入数据库的word文件移到另一个文件夹(articleAtDB)中。article表结构如下:

编辑的福音——一款用python编写的文字素材采集分析工具

    9.article表并没有content字段,因为这个表主要用来分析和查找所需的内容,找到需要的内容后再根据articleId从articleAtDB文件夹中打开word文件来查看。

    10.存在数据库article表中的数据可直接写SQL来查,或者用phpMyAdmin导出CSV文件来筛选,从keyword字段基本就能看出一篇文章主要写的什么内容。导出的CSV如下:

编辑的福音——一款用python编写的文字素材采集分析工具

    11.可能会有小伙伴问,为何采集完内容不直接存数据库,还要中间先存word文件,再从word文件写进数据库?需要word文件保存文章正文是其一,更重要的另一个原因是还有一个打标签的功能。

    12.打标签是什么?就是采集到word中的文章,有时我们希望对某一段内容添加一些注释,并希望所有word中的注释最终也能写入到数据库中。在word中的标签格式:<% t = xxxxxxx c = xxxxxxx %>,t是标签名,也就是注释,c是标签对应的内容。

   13.标签存入tags表,表的结构及写入数据后效果如下:

编辑的福音——一款用python编写的文字素材采集分析工具

    14.有了打标签功能,就可以在浏览采集到的内容时,对有用的内容进行标注,最终所有的标注内容都会存在数据库中。在写稿时,就可以将之前标注的内容全部导出来参考。当然如果嫌打标签麻烦也可以不用这个功能,直接从采集的内容中复制也行,但这样在以后就享受不到长期积累标签内容带来的好处了。

    15.以上流程画成图大致是这样的:

编辑的福音——一款用python编写的文字素材采集分析工具

    

上面就是工具的大概用法,下面是设计

系统使用面向对象方式编写,各模块分开,从使用上看,主要分两部分功能:

  • 采集,将网页内容采到word中
  • 解析,将word内容分字段解析,并写入数据库

采集部分的类图:

编辑的福音——一款用python编写的文字素材采集分析工具

采集部分顺序图:

编辑的福音——一款用python编写的文字素材采集分析工具

解析部分类图:

编辑的福音——一款用python编写的文字素材采集分析工具

解析部分顺序图:

编辑的福音——一款用python编写的文字素材采集分析工具