2.4 爬取新闻保存到XML文件并分析特征关系
在本节的内容中,将通过一个具体实例详细讲解使用Python爬取新闻信息并保存到XML文件中的方法,以及使用Stanford CoreNLP提取XML数据特征关系的过程。
2.4.1 爬虫抓取数据
在本项目的“Scrap”目录中提供了多个爬虫文件,每一个文件都可以爬取指定网页的新闻信息,并且都可以将爬取的信息保存到XML文件中。例如通过文件scrap1.py抓取新浪体育某个页面中的新闻信息,并将抓取的信息保存到XML文件news1.xml中。文件scrap1.py的主要实现代码如下所示。
源码路径:daima\2\2-4\pythonCrawler\venv\Scrap\scrap1.py
执行后将抓取的新浪体育的新闻信息保存到XML文件news1.xml中,如图2-6所示。
图2-6 文件news1.xml
2.4.2 使用Stanford CoreNLP提取XML数据的特征关系
Stanford CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供了词性标注(Part-of-Speech tagger)、命名实体识别(Named Entity Recognizer,NER)、情感分析(Sentiment Analysis)等功能。Stanford CoreNLP为Python提供了对应的模块,可通过如下命令安装。
因为本项目抓取的是中文信息,所以,还需要在Stanford CoreNLP官网下载专门处理中文的软件包如stanford-chinese-corenlp-2018-10-05-models.jar。
编写文件nlpTest.py调用Stanford CoreNLP分析处理上面抓取到的数据文件news1.xml,提取出数据中的人名、城市和组织等信息,主要实现代码如下所示。
源码路径:daima\2\2-4\pythonCrawler\venv\nlpTest.py
执行后会输出提取分析后的数据: