- 339
- 0
- 约1.12万字
- 约 15页
- 2016-12-19 发布于安徽
- 举报
学士学位论文
学生姓名 白翔
学科专业 软件工程
指导教师 邹昌伟
福建师范大学
软件学院
二О年月 【摘要】微博作为基于用户关系信息分享、传播以及获取的平台,已经成为当今社会信息传播最为便捷的渠道。随着用户圈子扩大,数据量增长,重要的信息往往淹没在庞大的信息流中。通过开发基于Scrapy框架的微博爬虫可以批量获取微博信息,若对其进行整理、筛选、挖掘,可以使信息得到更有效的传播。
【关键字】Scrapy;网络爬虫;微博;信息。目 录
1 引言 5
1.1 课题背景 5
1.2 课题调研 5
1.2.1 微博平台选取 5
1.2.2 微博开放平台 5
1.3 课题介绍 5
2 Scrapy框架介绍 5
2.1 Scrapy概述 5
2.2 Scrapy架构分析 5
2.3 XPath介绍 6
3 数据采集 7
3.1 数据来源 7
3.2 数据抓取 7
3.2.1 通过Scrapy框架抓取 7
3.2.2 通过PC 8
3.2.3 伪造HTTP请求抓取 8
3.3 数据抓取结果 9
4 数据解析 10
4.1 解析过程概述 10
4.2 页面信息分析 10
4.3 Item类设计 10
4.4 制定解析规则 10
5 数据存储 11
5.1 存储过程概述 11
5.2 网页文件存储 11
5.3 结构化信息存储 11
5.3.1 提取结构化信息 11
5.3.2 持久化存储 12
6 结束语 13
6.1 课题成果总结 13
6.2 后续工作展望 13
致谢 14
参考文献 15
引言
1.1 课题背景
信息泛指人类社会传播的一切内容,是对客观世界中各种事物的运动状态和变化的反映。随着互联网的日益普及,网络已经成为信息传输、接收、共享的虚拟平台。信息通过网络迅速的传播到世界各地,从而实现资源的共享。
微博是一个通过网络传播,基于用户关系信息分享、传播以及获取的平台,已逐渐成为最便捷的信息传播媒介。在微博平台上,用户能够在圈子内免费、及时的传播信息。网络爬虫是一种自动获取并解析网页源码的程序,从一个或若干初始网页的URL开始,不断地从当前页面上解析出新的URL放入队列,直到满足设定的停止条件。换言之,网络爬虫可以通过解析网页源码来获取网页的内容,并从中提取需要的信息。
通过将微博平台与网络爬虫相结合,就能获取用户圈子内传播的微博,了解圈子内的动态,并从中提取有价值的信息。但随着用户圈子的扩大,信息量也随之增长,信息的内容也涉及各个方面,重要的信息往往淹没在庞大的信息流中而无法得到及时的关注。本课题将制作一个demo,实现对微博信息的抓取,并对解析后的信息进行持久化存储。
1.2 课题调研
1.2.1 微博平台选取
新浪微博是一个由新浪网推出,提供微型博客服务的类Twitter网站,是一款为大众提供娱乐休闲生活服务的信息分享和交流平台。截止至2013年3月底,新浪微博用户数已达5.56亿,活跃用户数高达5000万[1]。鉴于新浪微博是当前国内用户量最大的微博平台,本课题将基于新浪微博展开。
1.2.2 微博开放平台
新浪微博提供的微博开放平台(Weibo Open Platform)是基于微博海量用户和强大的传播能力,接入第三方合作伙伴服务,向用户提供丰富应用和完善服务的开放平台。使用微博开放平台提供的API,可方便的实现对微博内容的抓取,但前期调研中发现其提供的API对用户每小时内的请求次数具有限制[2],具体限制分为用户维度和IP维度。考虑到本课题的可扩展性,决定放弃使用其提供的API对微博内容进行抓取。
1.3 课题介绍
在本课题中,用户圈子将采用与本校园生活相关的新浪微博(@福建师大溪源论坛),该微博有团队负责运营,会及时转发圈子内与校园生活相关的信息,如失物招领、寻物启示、二手买卖、校园投诉、生活询问等信息。我们将基于Scrapy(Python实现的Web抓取框架)开发网络爬虫,获取该微博转发的内容并对抓取信息进行持久化处理,提供更为有效的信息传播。
Scrapy框架介绍
2.1 Scrapy概述
Scrapy[3]是一个基于Python实现的,快速、高层次的屏幕抓取和Web抓取框架,通过抓取Web站点并从页面中提取结构化的数据,可用于数据挖掘、检测和自动化测试。框架提供了多种类型的爬虫基类,具有良好的可扩展性,可以便捷的在框架基础上根据需求进行开发。[4]
2.2 Scrapy架构分析
图2-1
本节将对Scrapy框架的架构[5]进行简单的分析,图2-1显示了Scrapy框架的主要模块及系统的数据处理流程,下面简单介绍下每个模块的作用以及数据在系统中的处理过程:
① Scrapy Engine(Sc
原创力文档

文档评论(0)