基于 Python 的网络信息自动抓取系统
摘要
随着移动互联网的快速发展和 5G 技术的投入建设,信息在社会发展中起着至关重
要的作用,具备着前所未有的价值。人们想要掌握最新的信息和了解社会的发展趋势,
就要不断递增花在阅读网络信息的时间。怎么从浩瀚的信息海洋中迅速有效地提取所需
信息已经越来越重要。搜索引擎也随着我们的需求而诞生和发展,它以爬虫技术为核心。
为提高用户访问网页信息的效率,本设计基于 Python 的 Scrapy 爬虫框架和 MySQL 后台
数据库,以“百度新闻”为爬取对象,实现定时自动抓取指定范围的网页信息并存储到
后台数据库中,并使用 hashlib 模块过滤重复数据。
关键词:
爬虫技术 Scrapy 爬虫框架 MySQL 数据库 定时自动
Automatic network information grabbing system based on Python
Name: Diao Yangjian
Major: Electronic Information Science and technology
Instructor: Wan Changlin, Assistant Researcher
(Electronic Information and Electrical Engineering Department of Huizhou University, No. 46,
Yanda Avenue, Huizhou City, Guangdong Province, 516007)
Abstract
With 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 taking taking 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
致谢 ...................................................... 错误!未定义书签。
5
1 前言
1.1 研究背景
如今已经是 2020 年,随着移动互联网的快速发展和 5G 技术的投入建设,移
动互联网越来越普及,社会生活的基本方式正在悄无声息的发生变化。当今时代,
互联网越来越贴近人们的生活,已经成为生活的必需品。人们的衣食住行都与互
联网息息相关,不可分离。许多行业都深受互联网的影响,即使是历史悠久的传
统行业。在这个时代,信息就是金钱,具备着前所未有的价值,已经成为社会发
展不可或缺的一部分。为了让自己做出正确的判断,我们要掌握最新的信息和了
解社会的发展趋势,造成人们花在阅读网络信息的时间不断递增。互联网是一个
浩瀚的信息海洋,是大量信息的载体,怎么从海洋中迅速有效地提取所需信息是
非常困难的,无异于大海捞针,更何况想要利用这些信息了。与此同时,搜索引
擎也随着我们的需求而诞生和发展。
1.2 研究意义
搜索引擎可以当成是一个入口或者指南。它可以帮助人们从互联网中搜索信
息,是人们获取互联网资源的重要途径,给人们带来了便利。但是,局限性是通
用性搜索引擎的最大缺点。例如,通用搜索引擎是通过关键字来搜索的,然后返
回大量的数据信息给用户,但是在这些信息中,并不都是用户所关心和需要的数
据信息,里面还有许多是用户并不关心的数据信息。聚焦爬虫具有高度的可自定
义性,可以帮助我们迅速有效的提取需要的信息。它按照程序设计者所设定的规
则,有选择的访问互联网上的网页,或者是与之相关的链接。Scrapy 爬虫框架
可以让聚焦爬虫的设计和工作变得更加方便。
1.3 研究内容
本设计主要研究的内容如下:
(1)获取数据:使用 Scrapy 框架对百度新闻网站首页进行访问,获取各栏
目的新闻数据信息。
(2)数据存储:将各栏目的新闻数据信息存储到 MySQL 后台数据库中。