- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》
山东建筑大学
课 程 设 计
题 目:课 程:院 (部):专 业:班 级:学生姓名:
学 号:
指导教师:完成日期:
目 录
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 附录 6
9 附录 9
1 设计目的本课程设计是专业重要的实践性环节之一,是在学生学习完《》课程后进行的一次全面的综合练习。本课程设计的目的和任务:1.巩固和加深学生对基本知识的理解和掌握2.培养学生进行对网络规划、管理及配置的能力或加深对网络协议体系结构的理解或提高网络编程能力;
3.提高学生进行技术总结和撰写说明书的能力。
2 设计任务内容网络爬虫是从web中发现,下载以及存储内容是搜索引擎的核心部分传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列直到满足系统的一定停止条件。网络爬虫抓取页面从而形成结构化数据3 网络爬虫程序总体设计
4 网络爬虫程序详细设计
4.1 4.1.1 设计环境
IDE:pycharm
Python版本:python2.7.13
4.1.2 目标分析
目标:从百度词条Python开始,以广度优先的方式,爬取相关联的若干词条网页的标题和简介
(1)初始URL:/item/Python?sefr=ps
(2)词条页面URL格式:
/item/%E8%87%AA%E7%94%B1%E8%BD%AF%E4%BB%B6
数据格式:标题——dd class=lemmaWgt-lemmaTitle-titleh1Python/h1
简介——div class=lemma-summary label-module=lemmaSummary
(4)页面编码:utf-8
4.2 爬虫运行流程分析
爬虫程序的运行流程如图所示。
爬虫控制器从给定的URL开始,将给定的初始URL添加到URL管理器中,然后调用URL管理器的相关方法,判断是否有待爬取的URL
URL判断是否有待爬取的URL,如果有待爬取的URL,则返回给控制器,控制器将这个URL传递给网页下载器,下载该网页
网页下载器将下载好的数据返回给控制器,控制器再将返回的数据传递给网页解析器解析
网页解析器解析网页之后获取网页数据和网页的URL链接,再将这两个数据传递给控制器
控制器得到解析出来的数据之后,将新的URL链接传递给URL管理器,将价值数据传递给数据输出器输出
数据输出器以文本的形式输出传递进来的数据。
回到第一步,循环
4.3 控制模块详细设计
爬虫控制器主要负责调度各个模块,所以在设计的时候只需要一次调用其他模块的方法,给对应的模块传递数据即可。比较简单,可参见附录1查看源码。
4.3 爬虫模块详细设计
4.3.1 URL管理器设计
URL管理器主要管理待抓取的URL集合和已抓取的URL集合。URL管理器设计的难点在于:防止重复抓取,防止循环抓取。
常用的URL管理器存储方式有三种,一是使用python内存即set集合来存储URL,二是使用数据库,例如MySQL,三是使用缓存数据库,例如redis。因为这只是个简单的python爬虫,所以我们选择利用内存存储URL。建立两个集合,一个为待爬取集合,一个为已爬取集合,功能上图所示。
4.3.2 网页下载器设计
网页下载器是将互联网上URL对应的网页下载到本地的工具。Python常用的网页下载器有两种,一个是python自带的urllib2,一个是第三方包requests。这里我们选用的是urllib2,比较简单的网页下载工具,其中最简洁的下载网页的代码如下:
import urllib2
response = urllib2.urlopen(url)# 如果请求码不是200,则表示请求不成功。# 典型的错误包括404(页面无法找到),403(请求禁止),401(待验证的请求)# 5XX 回应代码以“5”开头的状态码表示服务器端发现自己出现错误,不能继续执行请求if response.getcode() != 200: print download html failedcont= response.read()
4.3.3 网页解析器设计
网页解析器是从网页中提取有价值数据的工
您可能关注的文档
最近下载
- 期末默写、文言基础复习 统编版高中语文必修上册.docx VIP
- 对水果产业发展的调研报告.pdf
- 海水提取氯化钾项目节能评估报告.docx VIP
- 【一诊】绵阳市高三2022级(2025届)第一次诊断性考试数学试卷(含答案逐题解析).docx
- 2023-2024学年天津市河北区八年级第一学期期中数学试卷及参考答案完整版.pdf VIP
- 海水提取氯化钾项目节能分析报告.docx VIP
- 地基承载力标准值、特征值、允许值辨析.pdf
- 山东省烟台市2023至2024学年高二上学期期中考试化学试题附参考答案(解析).docx
- 利用PDCA降低乳腺癌改良根治术后患肢功能障碍发生率【24页】.pptx
- 高中英语课件:The Face-down Generation.pptx
文档评论(0)