摘要:人们的信息查询主要依赖于搜索引擎,但是搜索引擎所查询的信息,大部分不是用户所需要的。搜索出来的信息,也只是包含搜索关键字的页面链接。用户真正需要的信息包含在页面内,其余的信息是用户所不需要的。并且当用户所查询出的信息数据,有的用户想把查询出来数据下载下来进行操作,这是搜索引擎做不到的,因为其中包含大量无用信息。这时候可以使用专门针对想要数据的网站的爬虫,这个爬虫针对需要的信息设计出专用型爬虫,爬取需要的数据。对爬取的数据开发者也能够进行数据的分析处理。
本课题将以爬取一个招聘网站为例实现一个爬虫,系统基于python语言开发。爬取的数据的存储,使用Mongdb数据库存储。针对网站的反爬虫技术,使用IP代理池,代理IP的存储使用Redis数据库。使用爬虫框架Scrapy提高爬虫的性能。
论文主要从网络爬虫背景、爬虫系统的设计、爬虫相关的技术介绍、整个系统软件测试等方面的软件开发过程,进行了相对详细的论述和说明。
关键词: 网络爬虫;python;Scrapy;Redis;MongoDB
目录
摘要
Abstract
1 绪论-1
1.1 课题的目的-1
1.2 国内现状和发展趋势-1
1.3 课题拟解决的关键问题-1
2 系统需求分析-3
2.1 功能需求分析-3
2.2 数据库需求分析-3
2.2.1代理IP地址池数据库需求分析-3
2.2.2爬虫信息数据库需求分析-3
2.3 系统性能需求分析-3
2.3.1 系统可靠性和安全性-3
2.3.2系统的可扩展性-4
2.3.3 系统的易维护性-4
2.4 开发环境需求-4
2.4.1 开发语言-4
2.4.2开发工具-5
2.4.3 数据库-5
3 概要设计-6
3.1系统体系结构图-6
3.1.1 IP代理池体系结构图-6
3.1.2 Scrapy爬虫体系结构图-6
3.2 业务流程图-7
3.3数据库设计-8
3.3.1MongoDB数据库设计-8
3.3.2Redis数据库设计-9
3.3.3Mysql数据库设计-9
4 详细设计与实现-11
4.1地址池模块具体实现-11
4.1.1存储模块-11
4.1.2获取模块-12
4.1.3检测模块-14
4.1.4获取模块-15
4.1.5 调度模块-15
4.2 Scrapy爬虫模块具体实现-16
4.2.1 Spider实现-16
4.2.2 item实现-18
4.2.3 pipeline实现-18
4.2.4 middlewares实现-19
4.2.5 setting配置-20
4.3爬虫界面实现-20
4.4 数据分析-21
4.4.1 学历要求分析-21
4.4.2 薪资分析-22
4.4.3 主要招聘城市分析-25
5 系统测试-27
6总结-28
参考文献-29
致谢-30