基于Python爬虫的大众点评商家评论的文本挖掘
使用工具
编程语言工具:Python 2.7 R 2 .2.1 excel
浏览器:Google Chrome
数据库: Mongodb
相关算法:情感分析
情感分析(Sentiment Analysis),又被称为倾向性分析、意见挖掘,是通过对带有一定的情感色彩的主观性文本进行处理分析,归纳推理的过程,例如通过用户对产品的性能、价格、便携性等方面的评价分析用户对该产品的情感倾向。通常来说,文本情感分析的目的是找出说话者在某些话题上或者针对同一事物的两极的观点的态度。或许是说话者当时的情感状态,抑或是作者有意向的情感交流。
情感分析的基本步骤是分类,即将文本传达的情感划分为不同的类别。在句子级、功能级判断文字所阐述的观点是正面的,负面的,抑或是中性的。
实现过程:
确定目标网站
通过在大众点评网站查找并确定目标商家,进入其评论页面(https://www.dianping.com/shop/5144193/review_more?pageno=)。
对目标网站结构进行解析:利用浏览器自带的解析工具查看评论在网页的前端代码中的位置。
通过结构的解析我们发现每一条评论都是在<div class=’comment-list’></div>,所以我们只需要遍历这个层叠样式表里面的每一个 <divclass=’comment -text’></div>就能获取到当前页的所有的评论。
Python中有许多用于网络爬虫的包 在这里我们使用了“request” 和”Beautiful soup”两个用于爬取和解析网页的软件包,以及“pymongo”连接上mongodb数据库方便存取数据。
(1)使用反-反爬机制
大众点评网站因为经常被网络爬虫访问已经确立了一些反爬机制。测试之后其主要反爬机制的原理是:在某一时段内某一IP地址访问该网站的频率超过某一个阈值就会对这个IP地址进行封禁使其无法访问从而限制网络爬虫,因此我们使用两个反-反爬方法:一、使用代理IP地址伪装从多个地址对网站进行访问。二、使用浏览器头和Cookies 使Python爬虫的访问更像是浏览器的访问
爬取数据:在之前的网页分析之中我们已经对单页的网页进行解析了,我们现在只需要进一步的使用语言把它的内容下载并且解析出我们需要的内容。
存入数据库
我们使用的是mongodb 数据库,Python自带了pymongo 包我们可以通过这个包在mongodb中创立一个数据库“dianping”:
client = pymongo.MongoClient('localhost', 27017)
dianping = client['new']
infors = dianping['info']
而后把数据插入到数据库中就完成了整个过程。而后对数据内的数据进行数据清洗
文本挖掘过程:
词频统计
为了方便查看每个词出现的次数,找出消费者使用最多的词语,我们先使用软件包进行分词,而后再将分词结果写入excel表格当中,方便可视化。思想十分简单,就是先分词,而后统计频次再写入excel表格中,再制作成饼图方便查看。
关键词抽取:
商品关键词抽取
商品的关键词抽取我们使用了Python的“结巴中文分词”包(GitHub地址:https://github.com/fxsjy/jieba)
结巴中文分词包的基于TF-IDF算法的关键词抽取,TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
我们将抽选出来的关键词写入TXT文本中方便查阅,在这个过程当然中也要考虑到中文编码的问题。
抽取出来的关键词主要有:不错,东西,新鲜,好吃,三文鱼,味道,菜品,环境,排队,很多,自助,海鲜,火锅,就是,感觉,比较,还是,喜欢,性价比,服务员。
对评论的情感分析(基于SnowNLP)
SnowNLP是一个用python语言写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在所能找到的大部分的自然语言处理库基本都是针对英文的,少有针对中文处理的,于是我们实现了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用到NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。
在对评论进行情感分析的时候,因为每个商品评论都是单独成句地使用,所以我们就把评论都放到一个Dataframe中,新增一列用来记录每一行也就是每一句评价的评分。这个评分在0~1之间。并且将这个dataframe写入到excel表格内方便后续的数据分析操作。
结果对比:
关键词对比
大众点评网站给出的关键词是如下一张图:
我们实际由商品评论得出来的关键词是:不错,东西,新鲜,好吃,三文鱼,味道,菜品,环境,排队,很多,自助,海鲜,火锅,就是,感觉,比较,还是,喜欢,性价比,服务员。我们可以人工剔除一些没什么实际含义的关键词,最后得到的关键词应该是:不错,新鲜,好吃,三文鱼,味道,菜品,环境,排队,自助,海鲜,火锅,喜欢,性价比,服务员。由此可以看出消费者对这家店铺的影响整体还是比较积极的,从关键词的角度,来看这家店的服务员和三文鱼以及菜品相对是比较得到一些关注,但是排队的问题也是存在的。
情感分数比对
大众点评的打分机制是五分制,所以说我们可以这样认为,单句情感分数在0.8分以上的就是五分。0.6~0.8为4分以此类推。我们对得到的情感分数值进行计算处于每个分段的评论数量有多少。我们使用pandas计算出满分的评论有5868条而在实际的网站,满分的评论有8451条中间相差了大概2500条。
基于Python爬虫的大众点评商家评论的文本挖掘相关推荐
- Python爬取大众点评景点评论
爬取内容: 爬取结果: 爬取代码: ''' 大众点评-黄鹤楼评论: ①需要更改txt文本储存地址: ②更换配置中的cookie (两个cookie都一样): ③更换自己需要爬取的店铺id; '''im ...
- 看不懂别做爬虫-----python爬虫实战---大众点评评论
python爬虫实战-爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 2.分析网页 查看到下面有些字体经过加密处理 刷新页面会发现 每一次加密的字体是不一样的 3.发送请求获取数据 查看网 ...
- python爬虫进阶-大众点评店铺信息(字体反爬-静态映射)
目的 获取大众点评店铺信息 详细需求 http://www.dianping.com/shenzhen/ch10 思路解析 一 通过F12查找目标信息位置,进行分析 同理进行其他信息的解析,分析汇总 ...
- 大众点评 爬虫 python_[Python爬虫练习]大众点评会员榜
想了解一下吃货身上都有些什么特质.可以抓取点评的会员数据进行分析. 一.URL分析 这个是全国的会员榜,TOP300的吃货都在这里: http://www.dianping.com/memberlis ...
- python爬取大众点评数据
python爬取大众点评数据 参考博客: python+requests+beautifulsoup爬取大众点评评论信息 大众点评评论抓取 Chrome如何获得网页的Cookies 如何查看自己访问网 ...
- 关于抓取大众点评商户评论的爬虫那点事
第一波更新:更新时间:2020/03/01 没想到才完成两天就发现了bug,再加上之前有两点内容忘记说,就一起更新了. 更新内容: 1.修复已知的bug.bug主要出在主程序的逻辑问题上,还有一个是关 ...
- 大众点评数据,大众点评商家数据 ,大众点评2023爬虫
大众点评2023年7月商家数据,大众点评商家数据,几乎包含所有字段
- 25-爬取大众点评的评论【坑多】
目的:爬取大众点评上商铺"#喵の鍋日式小火锅"(shop_num=27385514)的全部评论. 结果呈现:数据保存到comment.txt [然后在文章分类"数据分析 ...
- python修改ip地址_怎么更改电脑ip地址?基于 Python 爬虫的ip修改设计与实现
怎么更改电脑ip地址?基于 Python 爬虫原理的篮球鞋选择程序的设计与实现ip修改 [摘 要]伴随着篮球鞋工艺的进步及产业升级,多类型多种类的篮球鞋出现在大众的视野当中.与此同时,消费者对篮球鞋的 ...
最新文章
- Examples osgparticleshader例子学习
- Python基础(1)
- nodejs png 转 rgb_90行代码,让微信登录界面的地球转起来
- 科技人员在计算机前的肖像,首个全国科技工作者日来了 西南大学学子为科技工作者画像...
- PostgreSQL在何处处理 sql查询之二
- ASP.NET服务器控件查询
- finebi跳转到本地html文件,组件跳转- FineReport帮助文档|报表开发|报表使用|学习教程...
- sqlite C#
- 2020-12-26
- linux文本编辑命令vim查找,Linux编辑器vi中文本搜索与替换操作
- 快速理解旋转运动公式
- 【HDOJ 5336】XYZ and Drops
- Vin码识别功能实现
- 49.SQLite 数据库 编程
- [c++简单小游戏]东搞西搞第二弹——谷歌chrome小恐龙升级版(啊哈)
- 中文转拼音 java_Java中文转拼音
- 别拦我,我不想搞Android开发了!
- S5PV210-uboot解析(三)-start_armboot解析
- 协同过滤系统的评价标准
- 基于STM32开发可燃气体智慧检测系统