山东建筑大学
课 程 设 计 成 果 报 告
题 目: 基于 Python 的网络爬虫设计
课 程: 计算机网络 A
院 (部): 管理工程学院
专 业: 信息管理与信息系统
班 级:
学生姓名:
学 号:
指导教师:
完成日期:
目 录
1 设计目的 .................................................................................................................... 1
2 设计任务内容 ............................................................................................................ 1
3 网络爬虫程序总体设计 ............................................................................................ 1
4 网络爬虫程序详细设计 .......................................................................................... 1
4.1 设计环境和目标分析 ...................................................................................... 1
4.1.1 设计环境 ................................................................................................ 1
4.1.2 目标分析 ................................................................................................ 2
4.2 爬虫运行流程分析 .......................................................................................... 2
4.3 控制模块详细设计 .......................................................................................... 3
4.3 爬虫模块详细设计 .......................................................................................... 3
4.3.1 URL 管理器设计 .................................................................................... 3
4.3.2 网页下载器设计 .................................................................................... 3
4.3.3 网页解析器设计 .................................................................................... 3
4.4 数据输出器详细设计 ....................................................................................... 4
5 调试与测试 ................................................................................................................ 4
5.1 调试过程中遇到的问题 .................................................................................. 4
5.2 测试数据及结果显示 ....................................................................................... 5
6 课程设计心得与体会 ................................................................................................ 5
7 参考文献 .................................................................................................................... 6
8 附录 1 网络爬虫程序设计代码 ............................................................................... 6
9 附录 2 网络爬虫爬取的数据文档 ........................................................................... 9
1
1 设计目的
本课程设计是信息管理与信息系统专业重要的实践性环节之一, 是在学生学习完 《计算
机网络》课程后进行的一次全面的综合练习。本课程设计的目的和任务:
1.巩固和加深学生对计算机网络基本知识的理解和掌握;
2.培养学生进行对网络规划、管理及配置的能力或加深对网络协议体系结构的理解或提高
网络编程能力;
3.提高学生进行技术总结和撰写说明书的能力。
2 设计任务内容
网络爬虫是从 web 中发现 ,下载以及存储内容,是搜索引擎的核心部分。传统爬虫从一
个或若干初始网页的 URL 开始,获得初始网页上的 URL ,在抓取网页的过程中,不断从当
前页面上抽取新的 URL 放入队列,直到满足系统的一定停止条件。
参照开放源码分析网络爬虫实现方法,给出设计方案,画出设计流程图。
选择自己熟悉的开发环境,实现网络爬虫抓取页面、从而形成结构化数据的基本功能,
界面适当美化。给出软件测试结果。
3 网络爬虫程序总体设计
在本爬虫程序中共有三个模块:
1、爬虫调度端:启动爬虫,停止爬虫,监视爬虫的运行情况
2、爬虫模块:包含三个小模块, URL 管理器、网页下载器、网页解析器。
(1)URL 管理器:对需要爬取的 URL 和已经爬取过的 URL 进行管理,可以从 URL
管理器中取出一个待爬取的 URL ,传递给网页下载器。
(2)网页下载器: 网页下载器将 URL 指定的网页下载下来, 存储成一个字符串, 传递
给网页解析器。
(3)网页解析器:网页解析器解析传递的字符串,解析器不仅可以解析出需要爬取的
数据,而且还可以解析出每一个网页指向其他网页的 URL ,这些 URL 被解析出来会补充进
URL 管理器
3、数据输出模块:存储爬取的数据
4 网络爬虫程序详细设计
4.1 设计环境和目标分析
4.1.1 设计环境
爬虫控制器
URL 管理器
网页下载器
网页解析器 数据输出器
2
IDE :pycharm
Python 版本: python2.7.13
4.1.2 目标分析
目标:从百度词条 Python 开始,以广度优先的方式,爬取相关联的若干词条网页的标题和
简介
(1)初始 URL :"http://baike.baidu.com/item/Python?sefr=ps"
(2)词条页面 URL 格式:
http://baike.baidu.com/item/%E8%87%AA%E7%94%B1%E8%BD%AF%E4%BB%B6
(3)数据格式:标题—— <dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1>
简介—— <div class="lemma-summary" label-module="lemmaSummary">
(4)页面编码: utf-8
4.2 爬虫运行流程分析
爬虫程序的运行流程如图所示。
(1)爬虫控制器从给定的 URL 开始,将给定的初始 URL 添加到 URL 管理器中,然
后调用 URL 管理器的相关方法,判断是否有待爬取的 URL
(2)URL 判断是否有待爬取的 URL ,如果有待爬取的 URL ,则返回给控制器,控制
器将这个 URL 传递给网页下载器,下载该网页
(3)网页下载器将下载好的数据返回给控制器, 控制器再将返回的数据传递给网页解
析器解析
(4)网页解析器解析网页之后获取网页数据和网页的 URL 链接,再将这两个数据传
递给控制器
(5)控制器得到解析出来的数据之后, 将新的 URL 链接传递给 URL 管理器,将价值
数据传递给数据输出器输出
(6)数据输出器以文本的形式输出传递进来的数据。
(7)回到第一步,循环