您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页豆瓣影评网络数据爬虫设计与实现

豆瓣影评网络数据爬虫设计与实现

来源:爱go旅游网
Research design研发设计摘要:随着互联网的发展壮大,网络数据越来越多,如何高效抓取信息成为难题。网络爬虫具有自动提取网页信息的能力。文章根据网站的特点,提出了一种基于Python中requests模块及PyQuery模块进行影评数据采集的爬虫程序设计,可采集豆瓣网大量影评信息。本设计具有针对性强,操作容易、简单,采集数据准确,采集量大等优点。关键词:Python语言;requests模块;爬虫;数据采集文章编号:2096-4137(2018)15-088-03 DOI:10.13535/j.cnki.10-1507/n.2018.15.16■  文/高 宠 赵丹丹 白哓宇 张金金 毕 瑞 徐俊婷豆瓣影评网络数据爬虫设计与实现随着网络的迅速发展,更多的略从队列中选择下一步要抓取的网其中,tag为查询电影的类型,人愿意在网上发表对某些事物的情页URL,并重复上述过程,直至达共有[“热门”“最新”“经典”“可感、态度和看法,这些内容中蕴藏到系统的某一条件时停止。另外,播放”“豆瓣高分”“冷门佳着大量有价值的信息,如果能够抓所有爬虫抓取的网页将会被系统存片”“华语”“欧美”“韩国”“日取到这些数据并对其进行分析,可贮,进行一定的分析、过滤,并建本”“动作”“喜剧”“爱情”“科以有效改进产品服务、预测股票走立索引,以便之后的查询与检索。幻”“悬疑”“恐怖”“动画”]类势、挑选优良产品、挑选一部好看对于聚焦爬虫来说,这一过程的分型;sort为排序方式;page_limit为电影等。析结果还可能对后续的抓取过程提每页显示的电影个数;page_start为供反馈和指导。查询电影起始位置。1 网络爬虫概述通过分析可发现,每次点击加网络爬虫,又称作网页蜘蛛2 数据的抓取载更多电影时,该网页会给主页面(web spider),是一个功能强大的2.1 寻找爬虫入口传递更多的电影信息,提供json格能够自动提取网页信息的程序,它豆瓣上有大量的电影影评,式的文本,可以通过Python的json模仿浏览器访问网络资源,获取用对比可以发现所有短评页面都遵循库将其解析成字典便于后续处理。户需要的信息,可以协助搜索引擎https://movie.douban.com/subject[唯抓取信息时,只需要更改tag从万维网上下载网页信息,因此,一标识数字]/comments?status=P的及page_start(20的倍数)就可以抓也是搜索引擎的重要组成部分。规则。也就是说,抓取到电影的唯取到大量的影评数据。可以发现,传统爬虫从一个或若干初始一标识数字就可以抓取到该电影的所需要的电影唯一标识数字在cover网页的URL开始,获得初始网页上短评网址。属性中,切割获取到的唯一标识数的URL,在抓取网页的过程中,不唯一标识数字的抓取可以通字,将大量标识数字保存到标识数断从当前页面中抽取新的URL放入过谷歌浏览器:更多工具->开发字集合(set)中为后续操作做准队列,直到满足系统的一定停止条者工具->Network查看豆瓣影评搜备。那么,每部电影的起始页就是件。聚焦爬虫的工作流程较为复索功能的工作状态,发现可抓取数https://movie.douban.com/subject/唯一标杂,需要根据一定的网页分析算法据的网页https://movie.douban.com/识数字/comments?status=P在标识数字过滤与主题无关的链接,保留有用j/search_subjects?type=movie&tag=集合中抓取的唯一标识数字。的链接并将其放入等待抓取的URL最新&sort=recommend&page_2.2 翻页处理队列中。然后,根据一定的搜索策limit=20&page_start=0。通常情况下,短评不只有一·88·中国高新科技 2018年第15期8上发网站4.indd 882018/8/16 17:40:01页,因此,需要进行翻页操作。(1)在当前页面抓取下一页的网址,但这种方法增加了解析的过程,而且非登录状态下只能查看前10页,每页20条短评共200条短评,需要加入条件来终止数据抓取,无法确认当前页面是多少,所以无法达到想象状态。(2)找寻页面的共同点,https://movie.douban.com/subject/唯一标识数字/comments?start=0&limit=20&sort=new_score&status=P&percent_type=。通过该地址发现,每个电影的网址都遵循这样的规律,唯一标识数字代表某部电影;start代表影评起始数(20的倍数),这样只需更改这两个条件就可以抓取到每部电影的前200条短评了。(注:豆瓣对同一用户的请求频率有,如果同一用户请求过快,就会要求进行身份验证,所以登录状态下是不行的,因为需要大量账号切换使用,但大量账号又不太现实。所以,本文的爬虫是在非登陆状态下进行的。)2.3 设置headersheaders是HTTP请求和响应的核心,承载了客户端浏览器、请求页面、服务器等相关信息。通过谷歌浏览器:更多工具->开发者工具->Network->headers可以轻松抓取到headers信息,为减少IP被封的频率,要不停更换Cookie和User-Agent,其他信息保持原样即可。User-Agent是一个特殊字符串头,使服务器可以识别操作系统、浏览器的信息。研究时可在百度上下载大量User-Agent信息,每次随机抽取其中一个即可。Cookie保存用户的身份信息,由于是在非登陆状态下,Cookie主要是bid信息,因此,可以直接使用随机8上发网站4.indd 研发设计research designR字符串生成该信息。(注:豆瓣设有乱,通常需要从中提取所需内容。时间访问上限,也就是说一段时间内2.5 使用PyQuery解析数据同一IP段的访问次数有限。)与requests相同,首先确认已2.4 使用requests实现循环抓取经安装PyQuery模块。PyQuery库是网页源码一个非常强大、灵活的网页解析确认已经安装requests模块,库,PyQuery是Python仿照jQuery的import request测试是否会报错,如严格实现。语法与jQuery几乎完全果没有报错则代表已经安装成功,相同。否则使用pip install requests进行安由于获取到的网页源码是没有装。requests模块使用Python语言编价值的,所以需要解析每个网页源写基于urllib的http库,操作比urllib码,即获取一个网页源码就要对其更加方便简单,仅需要几个简单的解析出数据然后保存。操作就可以实现网页源码的获取。 可以发现,每段短评都在使用requests.get()方法对豆瓣comment-item->comment类下的p的短评页面进行网页源码的抓取。标签中,可以使用PyQuery.find()方首先,从标识数字集合中抽取一部法寻找所有comment-item类,然后电影,然后逐一抓取该电影的前10对得到的文本再次使用find.()查找个网页。循环传入每页网站及随机comment类,最后查找到p标签下的生成的headers头文件,并使用变量文本,这样即可找到所需短评。但接受返回值。其次,使用r.status_这种方式只能解析一个短评,如果code查看请求返回状态码,常见的解析当前页面的所有短评就需要使请求返回状态码有3种:200(成用循环解析。功)、404(服务器找不到请求的2.6 保存文件网页)、403(禁止)服务器拒绝爬虫获取的数据可以存储为csv请求。其中,404为默认抓取前10格式。csv是一种通用的、相对简单页数据,但该电影的影评可能不足的文件格式,被用户、商业和科学10页,所以可以终止对该电影影界广泛应用。csv主要用于程序之间评的继续抓取,在标识数字集合中转移表格数据,有些程序本身是不抓取下一部电影继续运行;403为兼容的格式,但许多程序都支持csv某段时间内同一IP段的请求次数过格式。当使用csv文件时,若csv文件多,可以使用IP代理进行抓取,也的路径构造不存在,Python会创建一可以让爬虫等待一段时间后再进行个新的路径来存放csv文件;若csv路网页源码抓取。最后,使用r.text径存在,Python则会重写该csv文件。获取网页源码,鉴于网页源码比较此外,也可以保存到json文件、Excel图1 网页部分源码中国高新科技 2018年第15期··2018/8/16 17:40:01Technical application技术应用 摘要:物联网技术在建设项目中的应用越来越广泛,基于物联网技术的智能家居,正在将物联网技术应用到建设项目的各个方面。文章基于业主方视角,结合物联网技术在苏州“苏地2016-WG-53号地块”项目中的实际案例,剖析物联网在智能家居中的关键技术及物联网技术的系统结构和原理。关键词:物联网;智能家居;系统功能文章编号:2096-4137(2018)15-090-03 DOI:10.13535/j.cnki.10-1507/n.2018.15.17■  文/刘志会物联网技术在智能家居中的应用研究智能家居是以住宅为平台,集位于苏州市吴中区木渎镇金枫路要介绍物联网技术在智能家居系统系统、结构、服务、管理、控制于西侧、花苑路南侧,占地面积不同结构的应用中所涉及的技术。一体,利用先进的网络通信技术、61584.4m2,70年产权的城镇住宅2.1 互联网传输技术电气自动化技术、无线电技术等,用地,容积率小于2,建筑密度小互联网传输技术是智能家居系将与居家生活有关的各种设备有机于30%,绿化率大于37%。作为统中应用最广泛和最实际的,包括结合,通过网络化的综合管理,实苏州木渎板块的“地王”和“标家庭射频技术、无线局域网、红外现家电(如空调、地暖、新风等)杆”,势必要打造高端楼盘,未来线、蓝牙、ZigBee等。接入层利用控制、照明控制、窗帘自控、防盗将打造成一个总户数为2户的高业务网关和家庭网关,应用不同协报警、门锁控制等,创造优质、高端智能宜居精装项目。议规范进行互联互通的操作,且与效、舒适、安全、便利、节能、健骨干网络无缝链接。本项目主要康、环保的居住生活环境空间。2 智能家居系统的关键技术运用ZigBee技术,该技术目前在无基于物联网技术的智能家居有线传感网中使用较多,具有近距1 项目介绍三层结构,包括网络传输层、感知离、低功耗、低数据速率、高可苏地2016-WG-53号地块,延伸系统及应用和服务层。本文主靠性等特征。表格,以及本地数据库中。段。通过该方法不仅可以抓取影评究与设计[D].成都:西南石油大学,信息,只要稍加修改就可以抓取其2017.3 结语他数据。[5]夏火松,李保国.基于Python的动态网页评价爬虫算法[J].软件工程,本文根据网站的特点,设计了2016,19(2).一种基于Python中requests模块及参考文献PyQuery模块进行影评采集的爬虫[1]郭丽蓉.基于Python的网络爬虫程基金项目程序,可采集豆瓣网中大量影评信序设计[J].电子技术与软件工程,息。通过上述方法,实现了豆瓣网2017,(12).国家级项目“大连民族大学2017年[2]网络爬虫.https://baike.baidu.大学生创新创业训练计划项目”大量影评信息的抓取。在具体实践com/item/网络爬虫.(201712026024)。过程中,可将爬虫部署到云主机,[3]白雪丽.浅析基于Python爬虫技术不间断地抓取数据,随时使用随时的特性及应用[J].山西科技,2018,(作者高宠系大连民族大学计算机到主机中提取。网络的发展,使爬33(2).科学与工程学院学生)虫获取数据已经成为一种常用手[4]王锦阳.主题网络爬虫的并行化研·90·中国高新科技 2018年第15期8上发网站4.indd 902018/8/16 17:40:02

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务