当前位置:文档之家› 基于Python的网络信息自动抓取系统毕业论文

基于Python的网络信息自动抓取系统毕业论文

基于Python的网络信息自动抓取系统摘要随着移动互联网的快速发展和5G技术的投入建设,信息在社会发展中起着至关重要的作用,具备着前所未有的价值。

人们想要掌握最新的信息和了解社会的发展趋势,就要不断递增花在阅读网络信息的时间。

怎么从浩瀚的信息海洋中迅速有效地提取所需信息已经越来越重要。

搜索引擎也随着我们的需求而诞生和发展,它以爬虫技术为核心。

为提高用户访问网页信息的效率,本设计基于Python的Scrapy爬虫框架和MySQL后台数据库,以“百度新闻”为爬取对象,实现定时自动抓取指定范围的网页信息并存储到后台数据库中,并使用hashlib模块过滤重复数据。

关键词:爬虫技术 Scrapy爬虫框架 MySQL数据库定时自动Automatic network information grabbing system based on PythonName: Diao YangjianMajor: Electronic Information Science and technologyInstructor: Wan Changlin, Assistant Researcher(Electronic Information and Electrical Engineering Department of Huizhou University, No. 46, Yanda Avenue, Huizhou City, Guangdong Province, 516007)AbstractWith the rapid development of mobile Internet and the investment of 5g technology, information plays an important role in the social development and has unprecedented value. If people want to master the latest information and understand the development trend of society, they need to spend more and more time reading network information. How to extract the needed information from the vast ocean of information quickly and effectively has become more and more important. Search engine is also born and developed with our needs. It takes crawler technology as the core. In order to improve the efficiency of users' access to web information, this design is based on Python's scrapy crawler framework and MySQL background database, taking "Baidu news" as the crawling object, to realize the automatic crawling of the specified range of Web information and storage in the background database, and use hashlib module to filter the duplicate data.Keywords:crawler technology scrapy crawler framework MySQL database timed auto crawl目录1 前言 (5)1.1 研究背景 (5)1.2 研究意义 (5)1.3 研究内容 (5)2 设计原理以及相关技术介绍 (7)2.1 Scrapy爬虫框架 (7)2.1.1 Scrapy分析 (7)2.2 Robots协议 (8)2.2.1 Robots协议简介 (8)2.2.2 协议的写法 (8)2.2.3 Robots协议的缺点及影响 (9)2.3 正则表达式 (9)2.3.1 简介 (9)2.3.2 应用场景 (9)2.3.3 贪婪模式与懒惰模式 (9)2.4 XPath表达式 (9)2.4.1 简介 (9)2.5 MySQL数据库 (10)2.5.1 简介 (10)2.5.2 MySQL数据库的特点 (10)2.6 Fiddler (10)2.6.1 为什么使用Fiddler (10)2.6.2 为什么选择Fiddler (11)2.6.3 简介 (11)2.7 hashlib模块 (11)2.7.1 简介 (11)2.7.2 MD5算法 (12)3 基于Scrapy框架的百度新闻爬虫具体实现 (13)3.1 爬取对象简介 (13)3.2 网络爬虫实现细节 (13)3.2.1 创建Scrapy爬虫项目和爬虫应用程序 (13)3.2.2 配置items.py文件,设置数据存储容器 (14)3.2.3 使用Fiddler抓包工具分析URL规律 (14)3.2.4 配置news.py文件,设置爬虫程序 (14)3.2.5 配置settings.py文件 (15)3.2.6 创建MySQL数据库 (16)3.2.7 配置pipelines.py文件,进行数据处理 (16)3.2.8 设置定时爬取模块 (16)4 爬虫测试与效果展示 (17)4.1 运行状态及测试 (17)4.2 数据抓取结果展示 (17)5 总结与展望 (17)5.1 总结 (17)5.2 期望 (18)参考文献 (19)致谢...................................................... 错误!未定义书签。

1 前言1.1 研究背景如今已经是2020年,随着移动互联网的快速发展和5G技术的投入建设,移动互联网越来越普及,社会生活的基本方式正在悄无声息的发生变化。

当今时代,互联网越来越贴近人们的生活,已经成为生活的必需品。

人们的衣食住行都与互联网息息相关,不可分离。

许多行业都深受互联网的影响,即使是历史悠久的传统行业。

在这个时代,信息就是金钱,具备着前所未有的价值,已经成为社会发展不可或缺的一部分。

为了让自己做出正确的判断,我们要掌握最新的信息和了解社会的发展趋势,造成人们花在阅读网络信息的时间不断递增。

互联网是一个浩瀚的信息海洋,是大量信息的载体,怎么从海洋中迅速有效地提取所需信息是非常困难的,无异于大海捞针,更何况想要利用这些信息了。

与此同时,搜索引擎也随着我们的需求而诞生和发展。

1.2 研究意义搜索引擎可以当成是一个入口或者指南。

它可以帮助人们从互联网中搜索信息,是人们获取互联网资源的重要途径,给人们带来了便利。

但是,局限性是通用性搜索引擎的最大缺点。

例如,通用搜索引擎是通过关键字来搜索的,然后返回大量的数据信息给用户,但是在这些信息中,并不都是用户所关心和需要的数据信息,里面还有许多是用户并不关心的数据信息。

聚焦爬虫具有高度的可自定义性,可以帮助我们迅速有效的提取需要的信息。

它按照程序设计者所设定的规则,有选择的访问互联网上的网页,或者是与之相关的链接。

Scrapy爬虫框架可以让聚焦爬虫的设计和工作变得更加方便。

1.3 研究内容本设计主要研究的内容如下:(1)获取数据:使用Scrapy框架对百度新闻网站首页进行访问,获取各栏目的新闻数据信息。

(2)数据存储:将各栏目的新闻数据信息存储到MySQL后台数据库中。

(3)进行数据的过滤去重:使用Python编程语言的hashlib库的MD5算法,对获取的新闻网页URL进行加密处理,得到唯一的32位的十六进制字符串值,从而达到数据过滤去重的效果。

(4)定时爬取,更新数据库:使用Python编程语言的Time模块,对爬虫进程设置定时循环,从而不断更新数据库的数据。

2 设计原理以及相关技术介绍网络爬虫是一段程序或者脚本。

首先,分析百度新闻网站首页的HTML代码的规律,从而获取初始的URL。

其次,爬取初始的URL的内容并分析HTML代码规律,从而获取百度新闻网站首页的所有新闻网页链接。

然后,爬虫先访问获得的新闻网页链接。

若能够访问则自动下载其中的内容,再通过解析模块,解析得到已爬取页面中我们所需要的信息。

接着,将所爬取到的信息存储到MySQL后台数据库中,方便我们查询信息和统计。

最后,设置定时爬取,可以不断的更新数据库的数据。

2.1 Scrapy爬虫框架2.1.1 Scrapy分析Scrapy是一套比较成熟的web爬虫框架。

它可以用来爬取web数据,也可以用来提取结构性的数据。

它让网络爬虫的设计和工作变得更加方便。

它的应用范围非常广泛,例如,可以对大数据进行深度挖掘,也可以对大批的信息进行处理,还可以对历史数据进行存储等。

Scrapy具备很强的拓展性,可以灵活的完成许多需求。

Scrapy整体框架由7个部分组成:(1)Scrapy Engine(引擎):引擎负责控制整个数据处理过程,以及触发一些事务处理,控制和协调各个组件。

(2)Scheduler(调度器):主要负责存储待爬取的网址,并确定这些网址的优先级,决定下一次爬取哪个网址等。

(3)Downloader(下载器):实现对网络上要爬取的网页资源进行高速下载。

(4)Spider(爬虫):该组件是核心。

它负责接收引擎中的response响应,然后对响应进行分析处理,提取出关注的数据。

(5)Item Pipeline(项目管道):负责接收提取的item,然后对这些item 进行对应的处理。

(6)Downloader Middlewares(下载中间件):处于下载器和引擎之间,主要用于对下载器和引擎之间的通信进行处理。

(7)Spider Middlewares(爬虫中间件):处于引擎与爬虫组件之间,主要用于对爬虫组件和引擎之间的通信进行处理。

Scrapy基本运行流程:(1)首先,需要确定要爬取的目标,所以引擎先从调度器中选择一个URL。

(2)引擎收到URL后,将其打包成一个请求,然后传给下载器。

(3)下载器把资源下载下来,将资源打包成应答包。

(4)爬虫接收应答包,再解析它,并使用回调函数。

(5)如果从该应答包中解析出实体,再交给项目管道,然后才进行进一步的处理。

相关主题