推荐星级:
- 1
- 2
- 3
- 4
- 5
基于Python的淘宝评论爬取技术研究
资料介绍
本文提出一种爬取网上商品评语的算法,以Python语言为基础,利用该语言的爬虫工具包设计并实现了淘宝一般网店和淘宝商城的商品评语的爬取,并重点分析了淘宝在线平台的评语保存特征、评语链接的获取方式,以及算法运行时发生中断的例外处理机制,最终能较好地开展评论爬取工作。
部分文件列表
文件名 | 大小 |
基于Python的淘宝评论爬取技术研究.pdf | 1M |
部分页面预览
(完整内容请下载后查看)2019 年 2 月
Feb.,2019
Vol.22,No.4
中 国 管 理 信 息 化
China Management Informationization
第 22 卷第 4 期
基于 Python 的淘宝评论爬取技术研究
杨ꢀ帆,董ꢀ俊,唐宏亮,张ꢀ昊
(湖北第二师范学院ꢀ计算机学院,武汉ꢀ430205)
[摘ꢀ要]
本文提出一种爬取网上商品评语的算法,以 Python 语言为基础,利用该语言的爬虫工具包设计并实现了淘宝一般
网店和淘宝商城的商品评语的爬取,并重点分析了淘宝在线平台的评语保存特征、评语链接的获取方式,以及算法运行时
发生中断的例外处理机制,最终能较好地开展评论爬取工作。
[关键词]
Python;在线评论;网络爬虫;评论爬取
doi:
10.3969/j.issn.1673 - 0194.2019.04.074
[中图分类号]
[文献标识码]
[文章编号]
Aꢀꢀ 1673-0194(2019)04-0162-02
TP393.092ꢀꢀ
0
引ꢀ言
的数据结构、灵活的程序处理方式以及大量支持该语言的第
三方函数库,同时在爬虫和大数据处理方面也具有非常明显
的编程优势。
随着电商时代的到来,网络购物已经越来越普遍。很多购
物网站保存了大量用户购物后的评价信息,与产品评分相比,
这些信息能够真实地反映产品受大众喜爱的程度、哪些地方需
要改善、哪些地方表现优秀、哪些是和该产品有竞争关系、竞争
的焦点是什么等,从而可以作为第一手的数据资料。越来越多
的研究发现了 Web 评论的价值,作为评论挖掘的基础性工作,
评论的爬取显得尤为重要。本文以淘宝为例,分析淘宝网站的
特点,通过评语保存的格式、URL 的设计特征等方面设计和实
现淘宝一般网店和淘宝商城评语的爬取方案。
Python 作为一个面向对象的脚本语言,在抓取网页接口
时,相比其他静态编程语言更简洁,相比其他动态的脚本语言,
Python 有相对完整的访问网页文档的 API。由于 Python 具有易
于学习、易于维护、可移植、可扩展、有广泛的库等特点,已成为
设计网络爬虫算法的不二之选。
2
爬取淘宝评语
基于淘宝平台的网店大致分为以下两种:一种是普通网店,
1
相关技术
1.1 网络爬虫
网络爬虫是一个自动采集网页内容的程序,是网络搜索引
不需要支付任何费用,可以免费申请开店,主要靠从开店之日起
积累流量,获取较高等级后实现盈利最大化;另一种是天猫商城,
付费开店,每个周期都要支付一定的管理费用,以近期的评分为
主要评价依据。这两种网店都积攒了较多的用户评论,但评论的
存储格式略有不同,本文将对这两种形式的网店进行分析。
2.1 URL 链接与爬取页面
擎的重要组成部分,能够从因特网上下载网页,获取网页的内
容。常见的网络爬虫分为以下的几种类型。
第一,批量型网络爬虫。限制抓取内容的属性,包括抓取
范围、特定目标、限制抓取时间、限制数据量以及限制抓取页
淘宝的商品评论以 Json 格式保存,URL 链接不能直接从
面,其显著特征是限制爬虫的爬取范围。第二,增量型网络爬虫。 网站的 URL 地址获取,需要打开网店的某个商品页面,然后运
与批量型网络爬虫正好相反,由于没有爬取范围限制,爬虫会
不停地进行爬取直到抓完所有数据。该种类型的网络爬虫一般
在搜索引擎的网站或程序上应用。第三,聚焦型网络爬虫。该
类爬虫可以简单地理解为一个无限细化的增量网络爬虫,可以
对诸如行业、内容、发布时间、页面大小等很多因素进行细致筛
选。基于此,笔者在考虑淘宝评语爬取的作用和研究意义的基
础上,研究了第一种批量型网络爬虫。
行浏览器的一个网页分析工具(开发人员工具),通过工具分析
页面隐含的所有超级链接,提取包含所有评论的超级链接即可。
表 1 为同价位区间不同网店获取评论的统计数据。
2.2 爬取的统计数据
经分析发现,获取的评语链接只是当前的页面而不是全部
页面,即链接是分页保存的,当前获得的是 CurrentPage=1,也就
是第一页,获取全部页数可通过分析 Json 文档的信息实现。表
1 显示了华为荣耀 9 不同类型网店的评语链接、可以爬取的评
价数量以及实际的累计评价数量。由表 1 可知,能够获取的评
论数据小于实际累计评价数,特别是淘宝商城的网店,其评价
最多只能爬取 1 979 条。
1.2 Python
Python 语言是一种简单强大的高级编程语言,具有丰富
[收稿日期]2019-01-05
3
爬取算法设计与实现
[基金项目]2018 年度湖北省教育厅人文社会科学研究项目(18Q
本算法借用 Python 提供的工具包 Requests 获取 URL 地
182)。
CHINA MANAGEMENT INFORMATIONIZATION
/
162
信息管理
表 1ꢀ同价位区间不同网店获取评论的统计数据
型号
价格 / 元
店名
荣耀
评语链接
爬到的评价数 / 条 累计评价 / 条
httpsꢀ//rate.tmall.com/list_detail_rate.htm?it
emId=552919553653&spuId=855519187&
sellerId=1114511827¤tPage=1
华为荣耀 9
2300~3000
1 979
1 979
1 242
4 999
58 392
2 859
1 260
5 955
官方旗舰店 1
httpsꢀ//rate.tmall.com/list_detail_rate.htm?it
emId=552856496808&spuId=856588210&
sellerId=1114511827¤tPage=1
荣耀
官方旗舰店 2
华为荣耀 9
华为荣耀 9
华为荣耀 9
2300~3000
2300~3000
2300~3000
httpsꢀ//rate.taobao.com/feedRateList.htm?au
ctionNumId=553160852842&userNumId=
206362892¤tPageNum=1
中宽
通讯行
httpsꢀ//rate.taobao.com/feedRateList.htm?au
ctionNumId=551731783114&userNumId=
270215026¤tPageNum=1
红日
通讯官方授权
址对应的数据内容,用 Json 对获取的数据进行解析和转换,
用 Pandas 对转换的数据进行处理,并保存到 Excel 文件中。一
般网店和淘宝商城获取数据的方式基本相同,只是 Json 格式
不同,处理时可稍做修改,此外,评论页面总数获取的字段也不
同,可在提取时修改获取名称。
方式实现,部分代码如下。
tryꢀ
urlfor='httpsꢀ//rate.taobao.com/feedRateList.htm?auctionNumId
=549031678000&userNumId=206362892¤tPageNum='+str(i)
print(urlfor)
3.1 首页加载以及页数获取
datafor =rq.get(urlfor).text.strip().strip('()')
通过 Request 对象获取评语链接对应的原始 Json 数据,分
析数据格式的特点,发现 LastPage 项中含有的页数信息,通过
列表提取其值,并加载首页数据。
……
exceptꢀ
urlfor='httpsꢀ//rate.taobao.com/feedRateList.htm?auctionNumId
3.2 全部页面数据获取
=549031678000&userNumId=206362892¤tPageNum='+str(i)
根据首页中的页面信息循环所有页面评语,获取并保存
Json 格式的数据,若此过程在执行中发生了中断,后经过分析
发现程序本身没有语法错误,导致中断的根本原因可能在于数
据源的动态性。网店评论是实时更新的,程序运行抓取时有可
能发生更新操作,故导致程序运行中断。为避免程序中断,在
算法中应加入例外处理机制,发生异常就重新加载,从而避免
程序执行过程中突然停止运行。例如处理方式使用 try-except
print(urlfor)
datafor=rq.get(urlfor).text.strip().strip('()')
……
3.3 保存到文件
抓取全部页面的评论后,保存到 Excel 文件中,部分数据的
截图如图 1 所示。
图 1ꢀ部分抓取结果
4
结ꢀ语
主要参考文献
基于 Python 的淘宝评论爬取技术可以很好地实现淘宝网
[1]于娟, 刘强. 主题网络爬虫研究综述[J]. 计算机工程与科学,2015(2).
[2]黄红梅 , 张良均 .Python 数据分析与应用[M]. 北京 ꢀ 人民邮电出
版社 ,2017.
店的评语爬取任务,为分析产品的用户感受奠定了较好的信息
基础,但仍然存在一些不足。例如,算法的自动化程度不高,不
能针对产品名称直接从淘宝网站找到相应的评语页面并下载,
只能通过手动方式在访问网站获取评语的超级链接后进行下载。
此外,例外算法有待改进,本算法中的例外只是简单实现了程序
的再次启动,没有从根源上解决阻塞问题,导致分析效率低下。
后续研究将从这些方面进行改进,以获得更好的抓取效果。
[3]胡鹏 , 学习资源爬虫系统设计与实现[J]. 软件导刊 ,2017(4).
[4]杜姝 . 淘宝评论挖掘及其应用研究[D]. 成都 ꢀ 电子科技大学 ,2017.
[5]张艳辉 , 李宗伟 , 赵诣成 . 基于淘宝网评论数据的信息质量对在线
评论有用性的影响[J]. 管理学报 ,2017(1).
CHINA MANAGEMENT INFORMATIONIZATION
/
163
全部评论(0)