摘要 互联网时代是个信息大爆炸的时代,人们的工作和生活离不开互联网,互联网海量的信息中包含了许多人们感兴趣的东西,如何高效便捷地获取这些信息成为人们研究的焦点,网络爬虫正是在这样的背景下产生的。网络爬虫在网络中爬行,根据既定的规则获取信息,为相关人员的研究提供了巨大的帮助。
-本文设计和实现了一个简单的基于C#的针对单一网站的主题搜索网络爬虫,该爬虫可以把符合主题的网页保存在本地指定的目录下,过滤掉大量无关网页和广告,提高浏览网站的效率。
文章首先简单分析需求,理清爬虫执行流程,然后设计和实现单线程网络爬虫,最后在单线程爬虫的基础上进一步改进,实现了性能和效率更高更好的多线程网络爬虫。经过测试,单线程网络爬虫可以满足需求,而改进后的多线程网络爬虫可以更高效的工作,更好地满足需求。-
关键词:网络爬虫 网页分析 多线程
目录
摘要
Abstract
1 引言-4
1.1研究背景和意义-4
1.2 主要工作-1
2 相关技术-1
2.1关于网络爬虫-1
2.1.1通用网络爬虫-2
2.1.2聚焦网络爬虫-2
2.1.3增量网络爬虫-2
2.2 C# 语言和 .NET Framework 介绍-2
2.2.1 C#语言-2
2.2.2 .NET Framework平台体系结构-3
2.3 Html Agility Pack(HAP)-3
3 网络爬虫需求分析-4
3.1网络爬虫的基本要求-4
3.2功能实现步骤分析-4
3.3 程序模块分析-7
3.4图形界面设计-7
3.4.1图形界面布局分析-7
3.4.2界面操作流程分析-8
3.5 爬行策略分析-10
3.6 间隔访问策略的分析-10
3.6.1主题集中现象-10
3.6.2间隔访问策略的描述-13
3.6.3间隔访问策略的算法分析-13
4 单线程网络爬虫的设计-14
4.1 单线程爬虫的模块设计-14
4.1.1 FormSpider类-14
4.1.2 Spider类-18
4.2 单线程爬虫测试-23
5 多线程爬虫的设计与实现-25
5.1多线程网络爬虫的工作流程设计-25
5.2多线程网络爬虫的改进-26
5.2.1 修改字段-26
5.2.2修改方法-28
5.3多线程爬虫测试-31
5.4单线程爬虫和多线程爬虫的对比-32
6 总结-33
参考文献-34
致谢-35