欢迎来到天天文库
浏览记录
ID:22823046
大小:515.72 KB
页数:17页
时间:2018-10-31
《基于scrapy框架的微博爬虫》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Scrapy框架的微博爬虫学生姓名白翔学科专业软件工程指导教师邹昌伟福建师范大学软件学院二O—四年四月基于Scrapy框架的微博爬虫软件学院软件工程专业123012010051白翔指导教师邹昌伟【摘要】微博作为基于用户关系信息分享、传播以及获取的平台,已经成为当今社会信息传播最为便捷的渠道。随着用户圈子扩大,数据量増长,重要的信息往往淹没在庞大的信息流中。通过开发基于Scrapy框架的微博爬虫可以批量获取微博信息,若对其进行整理、筛选、挖掘,可以使信息得到更有效的传播。【关键字】Scrapy;网络爬虫;微博;信息。1弓I胃51.1课题背景51.2课题调
2、研51.2.1微博平台选収51.2.2微博开放平台51.3课题介绍52Scrapy框架介绍52.1Scrapy概述52.2Scrapy架构分析52.3XPath介绍63醒縫73.1数据来源73.2数据抓取73.2.1通过Scrapy框架抓収73.2.2通过PC端脚本抓取83.2.3伪造HTTP请求抓取83.3数据抓取结果94觀籬104.1解析过程概述104.2页面信息分析104.3Item类设计104.4制定解析规则105觀雜115.1存储过程概述115.2网页文件存储115.3结构化信息存储115.3.1提取结构化信息n5.3.2持久化存储126鱗i吾1
3、36.1课题成果总结136.2后续工作展望13翻14詩嫌151引言1.1课题背景信息泛指人类社会传播的一切内容,是对客观世界中各种事物的运动状态和变化的反映。随着互联网的日益普及,网络己经成为信息传输、接收、共享的虚拟平台。信息通过网络迅速的传播到世界各地,从而实现资源的共享。微博是一个通过网络传播,基于用户关系信息分享、传播以及获取的平台,已逐渐成为最便捷的信息传播媒介。在微博平台上,川户能够在圈子内免费、及时的传播信息。网络爬虫是一种自动获取并解析网页源码的程序,从一个或若干初始网页的URL开始,不断地从当前页面上解析出新的URL放入队列,直到满足设定
4、的停止条件。换言之,网络爬虫可以通过解析网页源码来获取网页的内容,并从屮提取需要的信息。通过将微博平台与网络爬虫相结合,就能获収用户圈子内传播的微博,了解圈子內的动态,并从屮提取有价位的信息。但随着用户圈子的扩大,信息量也随之增长,信息的内容也涉及各个方面,重要的信息往往淹没在庞大的信息流屮而无法得到及时的关注。本课题将制作一个demo,实现对微博信息的抓取,并对解析后的信息进行持久化存储。1.2课题调研121微博平台选取新浪微博是一个巾新浪网推出,提供微型博客服务的类Twitter网站,是一款为大众提供娱乐休闲生活服务的信息分享和交流平台。截止至2013
5、年3月底,新浪微博用户数已达5.56亿,活跃用户数高达5000万[1]。鉴于新浪微博是当前国IA)用户量最大的微博平台,本课题将基于新浪微博展开。1.2.2微博开放平台新浪微博提供的微博开放平台(WeiboOpenPlatform)是基于微博海量用户和强大的传播能力,接入第三方合作伙伴服务,向用户提供丰富应用和完善服务的开放平台。使用微时开放平台提供的API,可方便的实现对微博内容的抓取,但前期调研中发现其提供的API对用户每小时内的请求次数具有限制[2],具体限制分为用户维度和1P维度。考虑到本课题的可扩展性,决定放弃使用其提供的API对微博内容进行抓取
6、。1.3课题介绍在本课题中,用户圈子将采用与本校园生活相关的新浪微博(@福建师大溪源论坛),该微博有团队负责运营,会及时转发圈子内与校园生活相关的信息,如失物招领、寻物启示、二手买卖、校园投诉、生活询问等信息。我们将基于Scrapy(Python实现的Web抓取框架)开发网络爬虫,获取该微博转发的内容并对抓取信息进行持久化处理,提供更为有效的信息传播。2Scrapy框架介绍2.1Scrapy概述Scrapy是一个基于Python实现的,快速、高层次的屏幕抓収和Web抓収框架,通过抓収Web站点并从页面中提取结构化的数据,nJ•用于数据挖掘、检测和自动化测I
7、式。框架提供了多种类型的爬虫基类,具有良好的可扩展性,可以便捷的在框架基础上根据需求进行开发。2.2Scrapy架构分析Scheduler图2-1本节将对Scrapy框架的架构[5]进行简单的分析,图2_1显示了Scrapy框架的主要模块及系统的数据处理流程,下而简单介绍下每个模块的作用以及数据在系统中的处理过程:①ScrapyEngine(Scrapy引擎):Scrapy引擎是整个框架的核心,•其作用是控制整个系统的数掘处理流程,并进行事务处理的触发。②Scheduler(调度程序):调度程序从Scrapy引擎接受请求并将请求排序列入请求队列,在Down
8、loader空闲时向其发出下载请求。③D⑽nloader(下载器)
此文档下载收益归作者所有