![Python数据分析从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/705/33643705/b_33643705.jpg)
2.4 爬取新闻保存到XML文件并分析特征关系
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/61_04.jpg?sign=1738919715-SfbHsqdV3X9U78rTcw5PVTLhA5x2uBww-0-73ea6f969b4b77d8d9c05769460d49fd)
在本节的内容中,将通过一个具体实例详细讲解使用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
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/62_01.jpg?sign=1738919715-hSONlpGHdXl2YY0LjQDvxLwbfXPx90x7-0-d66395a0a16c0c212f2de0962c6fb2b3)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/63_01.jpg?sign=1738919715-PRChIkRrai9LqGRQlyE4HcZo9ruCpcp4-0-62c12061bc635041195aba6d40611488)
执行后将抓取的新浪体育的新闻信息保存到XML文件news1.xml中,如图2-6所示。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/63_02.jpg?sign=1738919715-rodo7s9W2iYSqLDkkkqvrW1iDHuZEk2N-0-236835b92e0e60b66cf36e99a386d580)
图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提供了对应的模块,可通过如下命令安装。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/63_03.jpg?sign=1738919715-Alp2UqaJXF7AE7q04taQdLonFG2CFml0-0-c42c59fe2cddeecfe7f0c5a3109ccda4)
因为本项目抓取的是中文信息,所以,还需要在Stanford CoreNLP官网下载专门处理中文的软件包如stanford-chinese-corenlp-2018-10-05-models.jar。
编写文件nlpTest.py调用Stanford CoreNLP分析处理上面抓取到的数据文件news1.xml,提取出数据中的人名、城市和组织等信息,主要实现代码如下所示。
源码路径:daima\2\2-4\pythonCrawler\venv\nlpTest.py
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/63_04.jpg?sign=1738919715-MkNXn60xTrVFyJrgYOCD2ujZDki2p4ar-0-7d31b01596b3232e4c9cee6be82b0d10)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/64_01.jpg?sign=1738919715-V7gdtb5wL6UOVQfqouJAahjvXIFPtHRN-0-1a832e2345777f70373b38608874d1c7)
执行后会输出提取分析后的数据:
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/64_02.jpg?sign=1738919715-EBAY3Q0Wgwpf3PDTDd3hBEeeSRkDwYnY-0-37c500856f36dfc1f5e0fd6d7b5fa413)