微博信息采集与分析

 2022-01-17 11:01

论文总字数:17490字

目 录

1 绪论 1

1.1 选题背景和意义 1

1.2 论文主要内容和章节安排 1

2 系统开发知识准备 2

2.1 Python简介 2

2.2 网络爬虫简介 2

2.3 Flask简介及其实现原理 3

2.4 MySQL简介 5

2.5 本章小结 6

3 系统需求分析 6

3.1系统可行性研究 7

3.1.1 技术可行性 7

3.1.2 操作可行性 7

3.1.3 经济可行性 7

3.2 用户对象分析 8

3.3 功能需求分析 8

3.4 本章小结 8

4 系统总体设计 8

4.1 数据库结构设计 8

4.2 系统功能设计 9

4.2.1 web模块 9

4.2.2数据爬取模块 10

4.2.3数据存储模块 11

4.2.4数据可视化模块 12

4.3 本章小结 12

5 系统详细设计 12

5.1 系统框架设计 13

5.1.1框架设计 13

5.1.2启动程序 13

5.1.3启动程序 13

5.1.4微博关注列表 14

5.1.5微博信息 15

5.1.6前端框架 16

5.2 爬虫程序设计 16

5.2.1 web抓取 16

5.2.2获取数据 17

5.2.3存储数据 17

5.3 本章小结 17

6 系统测试 18

6.1 系统测试的目的 18

6.2 测试结果 18

6.3 本章小结 21

7 总结与展望 21

参考文献 22

致谢 24

微博信息采集与分析

卓海鹏

,China

Abstract: With the rapid development of the Internet, the amount of data has become increasingly large, the collection and analysis of big data has become hot, which is currently facing a problem. For all departments, the mastery of big data has become increasingly important. In this paper, microblog as the carrier, we collected and analyzed the list by microblog-users concerned. We built the collection and analysis of microblog system by web crawler and showed the data.

Key words: Big Data; Microblog; Web Crawler

1 绪论

1.1 选题背景和意义

随着互联网的发展,信息呈几何级的增长。网络上一些存储信息的平台也越来越多,比如,百度贴吧,新浪微博,论坛等等。

新浪微博2009年上线,2013年2月总收入约6600万美元。2015年4月,新浪微博股票涨至15.42美元,新浪微博的发展具有巨大的潜力,因此对新浪微博的分析也变得尤为重要。

目前,由于人类对环境的肆意破坏,各种极端天气正在发生,比如特大冰雪,大雨导致的河水泛滥等,世界上各地饱受摧残,但这些极端天气发生前一般都会有一些征兆。虽然现在的天气预报已经很准确,但是还会有一些意外发生,所以如何在天气预报失误的情况下获取到极端征兆的信息尤为关键。上文提到的新浪微博,它的信息多由广大网民根据自己周边发生的一些奇事,趣事来发布的,特别是微博上的一些知名大V发布的信息深得广大网民的信任,也很可靠[1]。因此我们可以通过关注一些关于天气的知名博主,来采集他发布的信息,并结合天气预报,来降低一些由于自然灾害导致的损失。

另外,新浪微博也有一些其他的优点:在网络上传播快,信息传播可追根溯源,实名制[2]

1.2 论文主要内容和章节安排

本文对新浪微博爬虫系统的设计与分析作了详细介绍,该系统主要根据用户输入的微博ID从新浪微博爬取对应的数据。整个过程大致如下:先打开网页输入微博ID,点击提交按钮,显示输入的微博ID关注用户,然后再点击这些被关注的人的ID,显示微博信息,进行可视化输出,将爬取的数据放进本地数据库。

第一章为绪论,主要介绍了该课题的选题背景和研究意义,并说明了本论文的主要内容组成及论文的章节安排。

第二章为系统开发知识准备,简要介绍了本文所需要的相关理论和技术,主要包括Python,网络爬虫,Flask和MySQL数据库等相关知识。

第三章主要做了需求分析方面的工作,为接下来的工作打下基础。首先对系统可行性进行评估,主要从技术可行性,操作可行性,经济可行性这三个方面,然后再对使用本系统的用户进行分析,从上述分析中,得到开发本系统的功能,即该系统的功能分析。

第四章主要是对系统进行总体设计,分成数据库总体设计和系统功能设计,在系统功能设计中又分成四个模块,并且对这四个模块进行了总体上的设计,为接下来的系统详细设计与实现阶段打下基础。

第五章主要对微博信息采集与分析系统做了详细设计并完成了对该系统的开发,对于各个模块做了详细的功能说明和设计实现。

第六章主要对系统进行测试,首先介绍了什么是系统测试以及系统测试的意义和测试的原则,然后进行测试,最后给出测试结果。

第七章主要对本次系统设计进行展望,并指出下一步该怎样做。

2 系统开发知识准备

2.1 Python简介

Python是解释性语言:这表明在开发中不用再进行编译。Python是交互式语言:这表明在Python出现的提示中,直接根据提示执行你的程序。Python是面向对象语言:这意味着Python有着面向对象的各种好处。Python是初学者语言:Python对于初学的程序员来说,是一种伟大的语言,支持从简单的文字处理到网页开发再到游戏开发[3]

选择Python的程序员大都有以下几个因素:

1、软件质量

在很大程度上,Python更容易理解,能保证软件开发的质量,从而与其他语言区别开来。

2、开发者效率

Python代码往往只有其他代码的很少一部分,这意味着只需更少的代码就可以完成等量的工作,并且Python无需编译,可以直接运行,大大提高了开发的效率[4]

3、程序的移植性

Python可以很方便的在Linux和Windows之间进行移植,可以不对代码做任何改变。

4、易学

Python很容易学习,因为有完善的开发文档。

5、免费开源

Python是开放源码之一,使用者可以很方便的阅读源代码,并应用到自己想用到的地方,也可以进行改动。

6、可扩展性

如果希望自己的代码可以变得更加完善,能够局部程序用c或c 编写,然后再使用他们。

7、丰富的库

Python有很大的标准库,而且导入过程也特别方便,包括正则表达式,数据库,网页浏览器等。

8、规范的代码

Python的代码特点就是有很好的缩进形式,所以显得比较规范。

2.2 网络爬虫简介

网络爬虫,是一种按照自己定义的规则,自动地获取网络上的资源,比如新闻博客的程序和脚本[5],还有一些不常被人提及的名字,蠕虫,蚂蚁等。

网络爬虫经过这么多年的发展,已经出现好多不同的种类,如下文所提。实际上很多用户结合自己的需求开发的网络爬虫也都离不开这几种。

通用网络爬虫,是指从一些特定的URL进而爬取到整个网络空间,这类爬虫因为最后是爬取到整个网络,所以工作量巨大,所需存储空间也特别大。通常采用并行方式进行爬取,因为这类爬虫对爬取的顺序要求不高,还有就是待刷新的页面太多[6],适用于主题不太明确或者主题比较多的情况,有着很强的应用价值。

增量式网络爬虫,是指对一些已经爬取过的网页不再进行爬取,只针对那些待刷新的页面。这样一方面提高了爬取的效率和节省了存储空间,但是也会有新的问题出现,这将加大爬取的算法设计的难度。增量式爬虫主要有两个目标:第一保证本地爬取到的数据为最新数据,即不断更新本地的数据。第二提高本地爬取到的数据的质量。为实现第一个目标,爬虫程序有三种方法进行实现,第一爬虫不断地爬取全网,不用考虑其余的事情。第二爬虫根据单个网页改变的频率而不会是根据整个网页的改变频率来爬取。第三爬虫对全网进行分类,分成改变频率快和慢的两种类型,然后再根据不同分类进行爬取。为完成第二个要求,爬虫需要依照重要性对网页进行分类,人们经常使用的策略有,广度优先策略,PageRank优先策略,使我们的爬虫模型更加完美,在爬行中更加灵活[7]

聚焦网络爬虫,是指先定义好一些特定的主题,然后再设计程序,让爬虫只爬取设定好的主题的内容,和通用网络爬虫比较,聚焦网络爬虫只需爬取部分网页,因此很好地节省了存储空间和网络资源,存储的信息不会很多,有些用户就是需要对某些信息进行获取,不是对所有的信息。聚焦网络爬虫和通用网络爬虫相比,按照人们的关注程度对页面内容和链接进行分类,因为这些算法不同,得到的相关系数也都大相径庭,所以程序运行的过程也会按照这些系数进行排序。

深层网络爬虫,是指爬取那些互联网不能索引到的页面。Web页面按照在互联网上存在的方式可以分为深层页面和表层页面。表层页面是指用户输入URL然后访问的那些,是客观存在于网络空间上的,没有进行过再次渲染。深层页面举个详细的例子,就是在表层页面的基础上提交一些表单,比如账户名和密码,然后登录之后显示的页面。一般互联网上的主要信息都是隐藏在深层页面上的[8]。所以深层页面多种多样占有很大比例,本文要爬取的微博信息也是属于爬取微博的深层页面的信息。

2.3 Flask简介及其实现原理

Flask是十分简单的Web框架,它所运用的语言是Python。简单来说你可以使用Flask通过一些语法规则构建一些Web页面,wiki,博客,或商业网站[9]

Flask将Python代码转换为Web页面,我们这里说一下Web应用的运行过程,客户端发起一个Http请求为了获取客户端想要的资源,此时服务器就会进行相应的操作,生成客户端所需要的Http响应,在这些Http响应里,有着客户端所需要的数据,当然如果客户端要访问的是静态界面,则服务器不会做相应的业务逻辑处理,只将静态界面返回。处理流程如图2-1:

HTTP请求1

剩余内容已隐藏,请支付后下载全文,论文总字数:17490字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;