今天跟大家唠唠我最近研究的“蒙蒂尔”,不是人名儿,也不是家具,更不是金融学,我说的是一个挺有意思的实践。
这事儿得从我最近看世界杯说起,阿根廷队那个蒙蒂尔,罚进制胜点球,印象太深了。然后我就手贱搜了一下,发现“蒙蒂尔”这词儿还挺多,有家具公司,有书,还有人分析金融的。当时就觉得,这名字挺特别,要不就拿来做个小实验玩玩?
说干就干,先确定方向。家具肯定不行,我又不搞装修;金融学那玩意儿太高深,我玩不转。想来想去,就从那个足球运动员蒙蒂尔入手。
我打算用python写个爬虫,把所有提到“蒙蒂尔”的新闻都抓下来。这活儿我熟,之前也经常干,但是这回稍微加了点难度,我想把不同来源的新闻,比如新浪、搜狐、腾讯啥的,都整理到一起,然后自动去重。
我用了requests库去请求网页,然后用BeautifulSoup解析HTML。但是问题来了,不同网站的结构千奇百怪,xpath根本没法通用,我得针对每个网站写一套解析规则,太费劲了!
后来我换了个思路,直接用google搜索 “蒙蒂尔”,然后爬取搜索结果。这招果然好使,google的搜索结果页面结构比较统一,而且覆盖的范围也广。
搞定数据源之后,就开始写代码。先安装必要的库:
python
pip install requests beautifulsoup4
然后就是噼里啪一顿操作,写了大概100多行代码,主要就是模拟搜索请求,然后解析搜索结果,提取新闻标题和链接。
去重这块儿,我用了个简单的办法,就是把所有标题存到一个集合里,每次抓到新标题,先判断一下是不是已经在集合里了,不在的话就加进去。
代码写完,跑起来一看,效果还不错,哗的,几分钟就抓了几百条新闻。
我想对这些新闻做个简单的分析,看看大家都在说些一开始想用nltk做自然语言处理,但是nltk安装配置太麻烦了,而且对于中文的支持也不太
后来我发现了jieba分词,这玩意儿简单好用,而且对于中文的支持非常棒。
python
pip install jieba
安装完jieba之后,我就写了个小脚本,把所有新闻标题都分词,然后统计每个词出现的频率。
跑完脚本一看,出现频率最高的词是“蒙蒂尔”、“阿根廷”、“世界杯”、“点球”这些,看来大家都在讨论他在世界杯上的表现。
我把这些词和频率做成了一个简单的词云图,看起来还挺酷的。
这回“蒙蒂尔”实践,虽然简单,但是让我学到了不少东西。以后有机会,我打算把这个小项目扩展一下,比如可以加入情感分析,看看大家对蒙蒂尔的评价是正面还是负面。
还没有评论,来说两句吧...