Ⅰ 苏宁易购商品的主图、细节图、评论图可以用下图高手批量保存吗
应该是可以的,先把苏宁易购商品链接复制到下图高手中,勾选需要的选项,单击立即下载,就可以将图片批量保存下来了
Ⅱ 购物网站的购物车是用什么技术来存储数据的。
如果你登陆了京东帐号,然后把商品放入购物车,这时清理自己电脑的cookie是没有用的,商品是储存在京东帐号的购物车里。
如果没有登陆京东帐号,把商品放入购物车,清理电脑上的cookie才有用
Ⅲ 从哪些方面可了解买家对商品的评价
了解买家对商品的评价,可以从这几个方面:看评分,看追加评价,看买家秀,看钻级和皇冠级的买家评价。一般情况下重点看中评或者差评,好评就不要看了,虚的太多,30天卖出259件,约等于一天10件,如果价值低还好,价值高了,就必须怀疑了。
电商:
电子商务,简称电商,是指在互联网、内部网和增值网上以电子交易方式进行交易活动和相关服务活动,使传统商业活动各环节的电子化、网络化。电子商务包括电子货币交换、供应链管理、电子交易市场、网络营销、在线事务处理、电子数据交换(EDI)、存货管理和自动数据收集系统。在此过程中,利用到的信息技术包括:互联网、外联网、电子邮件、数据库、电子目录和移动电话。
Ⅳ 服务期的存储技术分类哪两大类
1、按用途
按照仓库在商品流通过程中所起的作用可以分为以下几种:
(1)批发仓库
批发仓库主要是用于储存从采购供应库场调进或在当地收购的商品,这一类仓库一般贴近商品销售市场,规模同采购供应仓库相比一般要小一些,铊既从事批发供货,也从事拆零供货业务。
(2)采购供应仓库
采购供应仓库主要用于集中储存从生产部门收购的和供国际间进出口的商品,一般这一类的仓库库场设在商品生产比较集中的大、中城市,或商品运输枢纽的所在地。
(3)加工仓库
前面在讲仓库的功能的之后已经讲过仓库的加工延迟功能,一般具有产品加工能力的仓库被成为加工仓库。
(4)中转仓库
中转仓库处于货物运输系统的中间环节,存放那些等待转运的货物,一般货物在此仅做临时停放,这一类仓库一般设置在公路、铁路的场站和水路运输的港口码头附近,以方便货物在此等待装运。
(5)零售仓库
零售仓库主要用于为商业零售业做短期储货,一般是提供店面销售,零售仓库的规模较小,所储存物资周转快。
(6)储备仓库
这类仓库一般由国家设置,以保管国家应急的储备物资和战备物资。货物在这类仓库中储存时间一般比较长,并且储存的物资会定期更新,以保证物资的质量。
(7)保税仓库
保税仓库是指为国际贸易的需要,设置在一国国土之上,但在海关关境以外的仓库。外国企业的货物可以免税进出这类仓库而办理海关申报手续,而且经过批准后,可以在保税仓库内对货物进行加工、存储等等作业。
2、按货物特性
(1)原料仓库:原材料仓库是用来储存生产所用的原材料的,这类仓库一般比较大。
(2)产品仓库:产品仓库的作用是存放已经完成的产品,但这些产品还没有进入流通区域,这种仓库一般是附属于产品生产工厂。
(3)冷藏仓库:它是用来储藏那些需要进行冷藏储存的货物,一般多是农副产品、药品等等对于储存温度有要求的物品。
(4)恒温仓库:恒温仓库和冷藏仓库一样也是用来储存对于储藏温度有要求的产品。
(5)危险品仓库:危险品仓库从字面上就比较容易理解它是用于储存危险品的,危险品由于可能对于人体以及环境造成危险,因此在此类物品的储存方面一般会有特定的要求,例如许多化学用品就是危险品,他们的储存都有专门的条例。
(6)水面仓库:象圆木、竹排等能够在水面上漂浮的物品来说,他们可以储存在水面。
(4)商品评论用啥技术存储扩展阅读:
仓库的功能:
1、储存和保管功能
仓库具有一定的空间,用于储存物品,并根据储存物品的特性配备相应的设备,以保持储存物品完好性。例如:储存挥发性溶剂的仓库,必须设有通风设备,以防止空气中挥发性物质含量过高而引起爆炸。
贮存精密仪器的仓库,需防潮、防尘、恒温,因此,应设立空调、恒温等设备。在仓库作业时,还有一个基本要求,就是防止搬运和堆放时碰坏、压坏物品。从而要求搬运器具和操作方法的不断改进和完善,使仓库真正起到贮存和保管的作用。
2、调节供需的功能
创造物质的时间效用是物流的两大基本职能之一,物流的这一职能是由物流系统的仓库来完成的。现代化大生产的形式多种多样,从生产和消费的连续来看,每种产品都有不同的特点,
有些产品的生产是均衡的,而消费是不均衡的,还有一些产品生产是不均衡的,而消费却是均衡不断地进行的。要使生产和消费协调起来,这就需要仓库来起“蓄水池”的调节作用。
3、调节货物运输能力
各种运输工具的运输能力是不一样的。船舶的运输能力很大,海运船一般是万吨级,内河船舶也有几百吨至几千吨的。火车的运输能力较小,每节车皮能装运30~60t,一列火车的云量最多大几千吨。
汽车的运输能力很小,一般每辆车装4~10t。他们之间的运输衔接是很苦难的,这种运输能力的差异,也是通过仓库进行调节和衔接的。
4、流通配送加工的功能
现代仓库的功能已处在由保管型向流通型转变的过程之中,即仓库由贮存、保管货物的中心向流通、销售的中心转变。仓库不仅要有贮存、保管货物的设备,
而且还要增加分拣、配套、捆绑、流通加工、信息处理等设置。这样,即扩大了仓库的经营范围,提高了物质的综合利用率,又方便了消费,提高了服务质量。
5、信息传递功能
伴随着以上功能的改变,导致了仓库对信息传递的要求。在处理仓库活动有关的各项事务时,需要依靠计算机和互联网,通过电子数据交换(EDI)和条形码技术来提高仓储物品信息的传输速度,
及时而又准确地了解仓储信息,如仓库利用水平、进出库的频率、仓库的运输情况、顾客的需求以及仓库人员的配置等。
6、产品生命周期的支持功能
根据美国物流管理协会2002年1月发布的物流定义:在供应链运作中,以满足客户要求为目的,对货物、服务和相关信息在产出地和销售地之间实现高效率和低成本的正向和理想逆向的流动于储存所进行的计划执行和控制的过程。
可见现代物流包括了产品从“生”到“死”的整个生产、流通和服务的过程。因此,仓储系统应对产品生命周期提供支持。
10分享
Ⅳ 什么是云存储技术
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。
云存储的两个层面
云存储的两个层面是作为云计算支撑的存储计算,主要涉及分布式存储(如分布式文件系统、IPSAN、数据同步、复制)、数据存储(如重复数据删除、数据压缩、数据编码)和数据保护(如RAID、CDP、快照、备份与容灾)等技术领域,如图8-30所示,这在第6章中已有所介绍。和云安全技术一样,云存储技术也需要利用现有的所有存储技术针对云计算三层架构的各个环节采用适当的存储技术,才能取得最佳效果,例如,对应不同需求,有时应该使用数据库技术但有时却应该使用LDAP技术,有些性能要求高的系统不能使用SAN或NAS,需直接使用基于RPC或Socket技术的并发文件系统,有些应用使用SAN成本太高等,这里不再做深入介绍。如图8-31所示是一个采用NetApp FAS、思科 UCS和 VMWare vShpere 4技术打造的存储系统,对上述两种云存储技术和应用都有促进作用。云存储架构
分为两类:一种是通过服务来架构;另一种是通过软件或硬件设备来架构。
传统的系统利用紧耦合对称架构,这种架构的设计旨在解决HPC(高性能计算、超级运算)问题,现在其正在向外扩展成为云存储从而满足快速呈现的市场需求。下一代架构已经采用了松弛耦合非对称架构,集中元数据和控制操作,这种架构并不非常适合高性能HPC,但是这种设计旨在解决云部署的大容量存储需求。各种架构的摘要信息如下:
紧耦合对称(TCS)架构
构建TCS系统是为了解决单一文件性能所面临的挑战,这种挑战限制了传统NAS系统的发展。HPC系统所具有的优势迅速压倒了存储,因为它们需要的单一文件I/O操作要比单一设备的I/O操作多得多。业内对此的回应是创建利用TCS架构的产品,很多节点同时伴随着分布式锁管理(锁定文件不同部分的写操作)和缓存一致性功能。这种解决方案对于单文件吞吐量问题很有效,几个不同行业的很多HPC客户已经采用了这种解决方案。这种解决方案很先进,需要一定程度的技术经验才能安装和使用。
松弛耦合非对称(LCA)架构
LCA系统采用不同的方法来向外扩展。它不是通过执行某个策略来使每个节点知道每个行动所执行的操作,而是利用一个数据路径之外的中央元数据控制服务器。集中控制提供了很多好处,允许进行新层次的扩展:
● 存储节点可以将重点放在提供读写服务的要求上,而不需要来自网络节点的确认信息。
● 节点可以利用不同的商品硬件CPU和存储配置,而且仍然在云存储中发挥作用。
● 用户可以通过利用硬件性能或虚拟化实例来调整云存储。
● 消除节点之间共享的大量状态开销也可以消除用户计算机互联的需要,如光纤通道或infiniband,从而进一步降低成本。
● 异构硬件的混合和匹配使用户能够在需要的时候在当前经济规模的基础上扩大存储,同时还能提供永久的数据可用性。
● 拥有集中元数据意味着,存储节点可以旋转地进行深层次应用程序归档,而且在控制节点上,元数据经常都是可用的。
Ⅵ 北大青鸟设计培训:PHP应用中常用的9大缓存技术
一、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。
此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content=Ob_get_contents();****将缓存内容写入html文件*****Ob_end_clean();二、数据缓存顾名思义,就是缓存数据的一种方式;比如,商城中的某个商品信息,当用商品id去请求时,就会得出包括店铺信息、商品信息等数据,此时就可以将这些数据缓存到一个php文件中,文件名包含商品id来建一个唯一标示;下一次有人想查看这个商品时,首先就直接调这个文件里面的信息,而不用再去数据库查询;其实缓存文件中缓存的就是一个php数组之类;Ecmall商城系统里面就用了这种方式;三、查询缓存其实这跟数据缓存是一个思路,就是根据查询语句来缓存;将查询得到的数据缓存在一个文件中,下次遇到相同的查询时,就直接先从这个文件里面调数据,不会再去查数据库;但此处的缓存文件名可能就需要以查询语句为基点来建立唯一标示;按时间变更进行缓存就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的访问才会先取缓存文件的内容,但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;比如,我将我们商城的首页就是设置2个小时更新一次。
四、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存。
该种方式可以用于如商城中的商品页;五、Opcode缓存首先php代码被解析为Tokens,然后再编译为Opcode码,最后执行Opcode码,返回结果;所以,对于相同的php文件,第一次运行时可以缓存其Opcode码,下次再执行这个页面时,直接会去找到缓存下的opcode码,直接执行最后一步,而不再需要中间的步骤了。
比较知名的是XCache、TurckMMCache、PHPAccelerator等。
六、按内容变更进行缓存这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时,即刻更新缓存文件;比如,一个人流量很大的商城,商品很多,商品表必然比较大,这表的压力也比较重;我们就可以对商品显示页进行页面缓存;当商家在后台修改这个商品的信息时,点击保存,我们同时就更新缓存文件;那么,买家访问这个商品信息时,实际问的是一个静态页面,而不需要再去访问数据库;试想,如果对商品页不缓存,那么每次访问一个商品就要去数据库查一次,如果有10万人在线浏览商品,那服务器压力就大了;七、内存式缓存提到这个,可能大家想到的首先就是Memcached;memcached是高性能的分布式内存缓存服务器。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
它就是将需要缓存的信息,缓存到系统内存中,需要获取信息时,直接到内存中取;比较常用的方式就是key_>value方式;connect($memcachehost,$memcacheport)ordie("Couldnotconnect");$memcache->set('key','缓存的内容');$get=$memcache->get($key);//获取信息?>八、apache缓存模块apache安装完以后,是不允许被cache的。
佳音IT培训http://www.kmbdqn.cn/认为如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块。
Ⅶ 数据挖掘 网购评论是真是假
来源 | 36大数据
当你在网上选购商品时,同类的商品成千上万,哪些因素会影响你选购某件商品呢?商品评论一定是一个重要的参考吧。一般我们总会看看历史销量高不高,用户评论好不好,然后再去下单。
过去不久的双11、双12网络购物节中,无数网友在各个电商网站的促销大旗下开启了买买买模式。不过,当你在网上选购商品时,同类的商品成千上万,哪些因素会影响你选购某件商品呢?商品评论一定是一个重要的参考吧。一般我们总会看看历史销量高不高,用户评论好不好,然后再去下单。
然而各位一定也有所耳闻,买的不如卖的精,刷单的、刷评论的始终横行网上,没准你看到的评论就是卖家自己刷出来的。事实上,许多精明的淘宝卖家会在双十一等网购高峰期售卖“爆款”,“干一票就撤”,这正是虚假评论的温床。有时我们选购商品,经常会发现许多条看起来十分夸张的评论,如某女鞋的商品评论:
“超级好看的鞋,随便搭配衣服就觉得自己像女神,又不磨脚,站一天都不会累。下次还来买,赶快上新款哦!”
“有史以来最满意的鞋,妈妈看了说是真皮的,卖家态度又很好,发货超快,诚信卖家,特别满意的一次购物!”
连续几百几千条“真情实感”的好评这样刷下来,恐怕会有许多顾客被洗脑:这个商品销量真高,评论也不错,那就买这家吧!结果网上的爆款买回家却变成了废品。我们买家真是绝对的信息弱势方,卖家给出的描述真假尚且不知,刷好评又让人防不胜防。那么,如何才能识别刷单评论呢?我们在此介绍一种借助文本挖掘模型的破解之道。
首先要解决数据来源问题,可以从网站上批量下载这些评论,也就是爬虫。目前有两种方法,一种是编程,可以使用python、java等编程语言去编写爬虫程序;还有一种是使用成熟爬虫软件,可以利用界面操作来爬虫。笔者决定使用免费的gooseeker软件来做,这个软件是Firefox浏览器的插件,避免了很多网站动态渲染不好分析的问题,它借助了浏览器的功能,只要在浏览器上看到的元素就可以方便地下载。该软件提供了详细的教程和用户社区,可以指导用户一步步设置抓取内容、抓取路线、连续动作、同类型网页的重复抓取,大家可以自行学习使用。
笔者最终抓取了四款同类型的鞋子的评论数据,包括会员名、商品描述、购买日期、购买型号、评论日期、评论文本等,共计5000多条数据。我们特意选取了具有刷单倾向的商品,可以看出,其中许多评论日期连续、会员名相似、买家等级较低;经过人眼识别,刷单评论占比约30%。我们意在使用这些数据去构建刷单评论识别模型,然后可以用这里得出来的规则去识别其它鞋类商品的刷单评论。
SAS Enterprise Miner 13.2是一款大家熟知的数据挖掘工具,它可以针对大型数据进行分析,并根据分析结果建立精确的预测和描述模型,因此为我们所选用,不过使用其他软件也是相同的分析思路。
我们把先前获取的5000条评论一分为二,其中70%作为训练样本,30%作为验证样本。首先,用文本解析将训练样本中的评论文本内容拆词,在拆词时可以选择忽略缺乏实际意义的代词、感叹词、介词、连词,忽略数字与标点符号。以上拆词过程相当于把非结构化数据转成了结构化数据,以前的一段文本如今可以用若干列来表示,每列代表一个词,如果文本中出现了该词该列取值为1,否则取值为0。
现在我们还不能直接拿它来建模,通过上图我们可以发现很多词只出现在少部分文章中,可以使用文本过滤器节点来去除词频很低的词。
在文本过滤器中可以设置最小文档数,指定排除小于该文档出现数目的词条,同时也要排除像“就”、“这”、“是”、“有”这样词频高却意义不大的词。除此之外,还可以进行同义词处理,我们可以手动添加同义词,也可以导入外部的同义词库。比如,“暖和”与“保暖”是同义词,“好看”与“漂亮”可以互相替代……
在软件中还可以查看词与词之间的链接关系:
接下来,我们可以使用文本规则生成器节点来建模,发现哪些词组组合与刷单有直接的关系:
我们将训练样本中的真实评论设置为0(蓝色),刷单虚假好评设置为1(红色)。上图中可以看出,提到“暖和”(包括同义词“保暖”)这样的词时,评论极可能是真实的;而写着“鞋子很时尚哦”“做工精细,还会再买”而没有提到暖和与否的,则多半是虚假好评。
说到这里,你可能会好奇:为什么“暖和”这样一个普通的词,倒成了真假评论的试金石?
我们不妨回想一下自己作为普通买家的购物经历:在收到货品并试用之后,通常只会简单描述一下自己的使用感受,这些感受一定。而水军则不然,他们从来没有真正收到商品,更谈不上试穿啦,为了完成业务指标,只好按照卖家提供的商品描述,尽量从质量、物流、服务态度甚至搭配等多方面强调商品本身的特性。从我们所做的案例来讲,“暖和”自然属于亲身感受,而“真皮”“做工”之类,恐怕不是普通买家最想反馈的性质。
那么这个模型的总体效果如何呢?我们可以用累积提升度这个指标来评价:
我们还留下了30%的验证样本,现在它们可以现身来验证成果了。请看上图中的粉红色曲线:如果用这个模型去对评论进行打分,按照疑似为虚假评论(“1”)的概率去排名,取前5%的评论时,提升度为3倍;我们已知虚假评论约占总体的30%,也就是说,概率排名前5%的评论中有九成都是刷的,从而证明我们的模型相当精准地捕捉了刷单评论。
最后,我们要为卖家说句公道话:淘宝刷单恶性竞争严重,完全不刷好评的店家恐怕不多,不能说有刷评论的店就完全不能下手,90%刷单的商品实在骇人听闻,10%刷单的店则或许质量尚可接受。这也进一步说明了我们的模型的作用:判断商品的刷单比例,比逐条判断评论是否虚假更加实用。
如今网络水军也在持续进化中,写出的评论越来越真情实感、具有极强的误导性,单凭肉眼分辨既浪费时间、又易被迷惑;但虚假评论可以推陈出新,我们的模型更可以随时跟进“学习”。如果将本文中的方法进行推广,则可以形成一个捕捉评论——文本解析——建立模型——判断虚假评论比例的标准过程,这样的方法无疑相当具有实用性。
end
Ⅷ 如何用python获取京东的评论数据
京东商品评论信息是由JS动态加载的,所以直接抓取商品详情页的URL并不能获得商品评论的信息。因此我们需要先找到存放商品评论信息的文件。这里我们使用Chrome浏览器里的开发者工具进行查找。
具体方法是在商品详情页点击鼠标右键,选择检查,在弹出的开发者工具界面中选择Network,设置为禁用缓存(Disable cache)和只查看JS文件。然后刷新页面。页面加载完成后向下滚动鼠标找到商品评价部分,等商品评价信息显示出来后,在下面Network界面的左侧筛选框中输入proctPageComments,这时下面的加载记录中只有一条信息,这里包含的就是商品详情页的商品评论信息。点击这条信息,在右侧的Preview界面中可以看到其中包含了当前页面中的评论信息。(抓取价格信息输入prices)。
复制这条信息,并把URL地址放在浏览器中打开,里面包含了当前页的商品评论信息。这就是我们要抓取的URL地址。
仔细观察这条URL地址可以发现,其中proctId=10001234327是当前商品的商品ID。与商品详情页URL中的ID一致。而page=0是页码。如果我们要获取这个商品的所有评论,只需要更改page后面的数字即可。
在获得了商品评论的真实地址以及URL地址的规律后,我们开始使用python抓取这件商品的700+条评论信息。并对这些信息进行处理和分析。
开始前的准备工作
在开始抓取之前先要导入各种库文件,这里我们分别介绍下需要导入的每个库文件的名称以及在数据抓取和分析中的作用。requests用于进行页面抓取,time用于设置抓取过程中的Sleep时间,random用于生产随机数,这里的作用是将抓取页面的顺序打乱,re用于在抓取后的页面代码中提取需要的信息,numpy用于常规的指标计算,pandas用于进行数据汇总和透视分析,matplotlib用于绘制各站图表,jieba用于对评论内容进行分词和关键词提取。
#导入requests库(请求和页面抓取)
import requests
#导入time库(设置抓取Sleep时间)
import time
#导入random库(生成乱序随机数)
import random
#导入正则库(从页面代码中提取信息)
import re
#导入数值计算库(常规计算)
import numpy as np
#导入科学计算库(拼表及各种分析汇总)
import pandas as pd
#导入绘制图表库(数据可视化)
import matplotlib.pyplot as plt
#导入结巴分词库(分词)
import jieba as jb
#导入结巴分词(关键词提取)
import jieba.analyse
将爬虫伪装成浏览器
导入完库文件后,还不能直接进行抓取,因为这样很容易被封。我们还需要对爬虫进行伪装,是爬虫看起来更像是来自浏览器的访问。这里主要的两个工作是设置请求中的头文件信息以及设置Cookie的内容。
头文件信息很容易找到,在Chrome的开发者工具中选择Network,刷新页面后选择Headers就可以看到本次访问的头文件信息,里面包含了一些浏览器的技术参数和引荐来源信息。将这些信息直接添加到代码中就可以,这里我们将头部信息保存在headers中。
#设置请求中头文件的信息
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept':'text/html;q=0.9,*/*;q=0.8',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Connection':'close',
'Referer':''
}
在查看头文件信息的旁边还有一个Cookies标签,点击进去就是本次访问的Cookies信息。这里的Cookies信息与前面头文件中的Cookie信息一致,不过这里更加清晰。把Request Cookies信息复制到代码中即可,这里我们将Request Cookies信息保存在Cookie中。
#设置Cookie的内容
cookie={'TrackID':'1_VWwvLYiy1FUr7wSr6HHmHhadG8d1-Qv-TVaw8JwcFG4EksqyLyx1SO7O06_Y_XUCyQMksp3RVb2ezA',
'__jda':'122270672.1507607632.1423495705.1479785414.1479794553.92',
'__jdb':'122270672.1.1507607632|92.1479794553',
'__jdc':'122270672',
'__j':'1507607632',
'__jdv':'122270672|direct|-|none|-|1478747025001',
'areaId':'1',
'cn':'0',
'ipLoc-djd':'1-72-2799-0',
'ipLocation':'%u5317%u4EAC',
'mx':'0_X',
'rkv':'V0800',
'user-key':'216123d5-4ed3-47b0-9289-12345',
'xtest':'4657.553..'}
抓取商品评论信息
设置完请求的头文件和Cookie信息后,我们开始抓取京东商品评论的信息。前面分析URL的时候说过,URL中包含两个重要的信息,一个是商品ID,另一个是页码。这里我们只抓取一个商品的评论信息,因此商品ID不需要更改。但这个商品的评论有700+条,也就是有近80页需要抓取,因此页码不是一个固定值,需要在0-80之间变化。这里我们将URL分成两部分,通过随机生成页码然后拼接URL的方式进行抓取。
#设置URL的第一部分
url1=''
#设置URL的第二部分
url2='&pageSize=10&callback=fetchJSON_comment98vv41127'
#乱序输出0-80的唯一随机数
ran_num=random.sample(range(80), 80)
为了使抓取过程看起来更加随机,我们没有从第1页一直抓取到第80页。而是使用random生成0-80的唯一随机数,也就是要抓取的页码编号。然后再将页码编号与两部分URL进行拼接。这里我们只知道商品有700+的评论,但并不知道具体数字,所以抓取范围定位从0-80页。
下面是具体的抓取过程,使用for循环每次从0-80的随机数中找一个生成页码编号,与两部分的URL进行拼接。生成要抓取的URL地址并与前面设置好的头文件信息和Cookie信息一起发送请求获取页面信息。将获取到的页面信息进行汇总。每次请求间休息5秒针,避免过于频繁的请求导致返回空值。
#拼接URL并乱序循环抓取页面
for i in ran_num:
a = ran_num[0]
if i == a:
i=str(i)
url=(url1+i+url2)
r=requests.get(url=url,headers=headers,cookies=cookie)
html=r.content
else:
i=str(i)
url=(url1+i+url2)
r=requests.get(url=url,headers=headers,cookies=cookie)
html2=r.content
html = html + html2
time.sleep(5)
print("当前抓取页面:",url,"状态:",r)
在抓取的过程中输入每一步抓取的页面URL以及状态。通过下面的截图可以看到,在page参数后面的页码是随机生成的并不连续。
抓取完80个页面后,我们还需要对页面进行编码。完成编码后就可以看到其中所包含的中文评论信息了。后面大部分苦逼的工作就是要对这些评论信息进行不断提取和反复的清洗。
#对抓取的页面进行编码
html=str(html, encoding = "GBK")
这里建议将抓取完的数据存储在本地,后续工作可以直接从本地打开文件进行清洗和分析工作。避免每次都要重新抓取数据。这里我们将数据保存在桌面的page.txt文件中。
#将编码后的页面输出为txt文本存储
file = open("c:\\Users \\Desktop\\page.txt", "w")
file.write(html)
file.close()
读取文件也比较简单,直接open加read函数就可以完成了。
#读取存储的txt文本文件
html = open('c:\\Users\\ Desktop\\page.txt', 'r').read()
提取信息并进行数据清洗
京东的商品评论中包含了很多有用的信息,我们需要将这些信息从页面代码中提取出来,整理成数据表以便进行后续的分析工作。这里应该就是整个过程中最苦逼的数据提取和清洗工作了。我们使用正则对每个字段进行提取。对于特殊的字段在通过替换等方式进行提取和清洗。
下面是提取的第一个字段userClient,也就是用户发布评论时所使用的设备类型,这类的字段提取还比较简单,一行代码搞定。查看一下提取出来的字段还比较干净。使用同样的方法我们分别提取了以下这些字段的内容。
#使用正则提取userClient字段信息
userClient=re.findall(r',"usefulVoteCount".*?,"userClientShow":(.*?),',html)
#使用正则提取userLevel字段信息
userLevel=re.findall(r'"referenceImage".*?,"userLevelName":(.*?),',html)
#使用正则提取proctColor字段信息
proctColor=re.findall(r'"creationTime".*?,"proctColor":(.*?),',html)
#使用正则提取recommend字段信息
recommend=re.findall(r'"creationTime".*?,"recommend":(.*?),',html)
#使用正则提取nickname字段信息
nickname=re.findall(r'"creationTime".*?,"nickname":(.*?),',html)
#使用正则提取userProvince字段信息
userProvince=re.findall(r'"referenceImage".*?,"userProvince":(.*?),',html)
#使用正则提取usefulVoteCount字段信息
usefulVoteCount=re.findall(r'"referenceImage".*?,"usefulVoteCount":(.*?),',html)
#使用正则提取days字段信息
days=re.findall(r'"usefulVoteCount".*?,"days":(.*?)}',html)
#使用正则提取score字段信息
score=re.findall(r'"referenceImage".*?,"score":(.*?),',html)</pre>
还有一些字段比较负责,无法通过正则一次提取出来,比如isMobile字段,有些值的后面还有大括号。这就需要进一步的提取和清洗工作。
#使用正则提取isMobile字段信息
isMobile=re.findall(r'"usefulVoteCount".*?,"isMobile":(.*?),',html)
使用for循环配合替换功能将字段中所有的}替换为空。替换完成后字段看起来干净多了。
#替换掉最后的}
mobile=[]
for m in isMobile:
n=m.replace('}','')
mobile.append(n)
proctSize字段中包含了胸围和杯罩两类信息,为了获得独立的杯罩信息需要进行二次提取,将杯罩信息单独保存出来。
#使用正则提取proctSize字段信息
proctSize=re.findall(r'"creationTime".*?,"proctSize":(.*?),',html)
使用for循环将proctSize中的第三个字符杯罩信息提取出来,并保持在cup字段中。
#提取杯罩信息
cup=[]
for s in proctSize:
s1=s[3]
cup.append(s1)
创建评论的日期信息仅依靠正则提取出来的信息还是比较乱,无法直接使用。因此也需要进行二次提取。下面是使用正则提取出的结果。
#使用正则提取时间字段信息
creationTime1=re.findall(r'"creationTime":(.*?),"referenceName',html)
日期和时间信息处于前20个字符,在二次提取中根据这个规律直接提起每个条目的前20个字符即可。将日期和时间单独保存为creationTime。
#提取日期和时间
creationTime=[]
for d in creationTime1:
date=d[1:20]
creationTime.append(date)
在上一步日期和时间的基础上,我们再进一步提取出单独的小时信息,方法与前面类似,提取日期时间中的第11和12个字符,就是小时的信息。提取完保存在hour字段以便后续的分析和汇总工作。
#提取小时信息
hour=[]
for h in creationTime:
date=h[10:13]
hour.append(date)
最后要提取的是评论内容信息,页面代码中包含图片的评论信息是重复的,因此在使用正则提取完后还需要对评论信息进行去重。
#使用正则提取评论信息
content=re.findall(r'"guid".*?,"content":(.*?),',html)
使用if进行判断,排除掉所有包含图片的评论信息,已达到评论去重的目的。
#对提取的评论信息进行去重
content_1=[]
for i in content:
if not "img" in i:
content_1.append(i)
完成所有字段信息的提取和清洗后,将这些字段组合在一起生成京东商品评论数据汇总表。下面是创建数据表的代码。数据表生成后还不能马上使用,需要对字段进行格式设置,例如时间和日期字段和一些包含数值的字段。具体的字段和格式设置依据后续的分析过程和目的。这里我们将creationTime设置为时间格式,并设置为数据表的索引列。将days字段设置为数值格式。
#将前面提取的各字段信息汇总为table数据表,以便后面分析
table=pd.DataFrame({'creationTime':creationTime,'hour':hour,'nickname':nickname,'proctColor':proctColor,'proctSize':proctSize,'cup':cup,'recommend':recommend,'mobile':mobile,'userClient':userClient,'userLevel':userLevel,'userProvince':userProvince,'usefulVoteCount':usefulVoteCount,'content_1':content_1,'days':days,'score':score})
#将creationTime字段更改为时间格式
table['creationTime']=pd.to_datetime(table['creationTime'])
#设置creationTime字段为索引列
table = table.set_index('creationTime')
#设置days字段为数值格式
table['days']=table['days'].astype(np.int64)
#查看整理完的数据表
table.head()
这里建议再次保存清洗和预处理完的数据表。我们这里将数据表保存为csv格式。到了这一步可以选择在Excel中完成后续的数据分析和可视化过程,也可以继续在python中完成。我们这里选择继续在python中完成后续的数据分析和可视化工作。
#保存table数据表
table.to_csv('jd_table.csv')
数据分析及可视化
分月评论数据变化趋势
首先查看京东商品评论的时间变化趋势情况,大部分用户在购买商品后会在10天以内进行评论,因此我们可以近似的认为在一个月的时间维度中评论时间的变化趋势代表了用户购买商品的变化趋势。
Ⅸ 大数据关键技术有哪些
大数据关键技术涵盖数据存储、处理、应用等多方面的技术,根据大数据的处理过程,可将其分为大数据采集、大数据预处理、大数据存储及管理、大数据处理、大数据分析及挖掘、大数据展示等。
1、大数据采集技术
大数据采集技术是指通过 RFID 数据、传感器数据、社交网络交互数据及移动互联网数据等方式获得各种类型的结构化、半结构化及非结构化的海量数据。
因为数据源多种多样,数据量大,产生速度快,所以大数据采集技术也面临着许多技术挑战,必须保证数据采集的可靠性和高效性,还要避免重复数据。
2、大数据预处理技术
大数据预处理技术主要是指完成对已接收数据的辨析、抽取、清洗、填补、平滑、合并、规格化及检查一致性等操作。
因获取的数据可能具有多种结构和类型,数据抽取的主要目的是将这些复杂的数据转化为单一的或者便于处理的结构,以达到快速分析处理的目的。
3、大数据存储及管理技术
大数据存储及管理的主要目的是用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。
4、大数据处理
大数据的应用类型很多,主要的处理模式可以分为流处理模式和批处理模式两种。批处理是先存储后处理,而流处理则是直接处理。
(9)商品评论用啥技术存储扩展阅读:
大数据无处不在,大数据应用于各个行业,包括金融、汽车、餐饮、电信、能源、体能和娱乐等在内的社会各行各业都已经融入了大数据的印迹。
1、制造业,利用工业大数据提升制造业水平,包括产品故障诊断与预测、分析工艺流程、改进生产工艺,优化生产过程能耗、工业供应链分析与优化、生产计划与排程。
2、金融行业,大数据在高频交易、社交情绪分析和信贷风险分析三大金融创新领域发挥重大作用。
3、汽车行业,利用大数据和物联网技术的无人驾驶汽车,在不远的未来将走入我们的日常生活。
4、互联网行业,借助于大数据技术,可以分析客户行为,进行商品推荐和针对性广告投放。
5、电信行业,利用大数据技术实现客户离网分析,及时掌握客户离网倾向,出台客户挽留措施。