推荐星级:
- 1
- 2
- 3
- 4
- 5
基于Python的专业网络爬虫的设计与实现
资料介绍
网络爬虫,又称网页蜘蛛、网络机器人。随着计算机技术的高速发展,互联网中的信息量越来越大,搜索引擎应运而生。传统的搜索引擎会有返回结果不精确等局限性。为了解决传统搜索引擎的局限性,专用型网络爬虫在互联网中越来越常见。同时,专用型网络爬虫具有专用性,可以根据制定的规则和特征,最后只体现和筛选出有用的信息。
部分文件列表
文件名 | 大小 |
基于Python的专业网络爬虫的设计与实现.pdf | 929K |
部分页面预览
(完整内容请下载后查看)2016年第 8 期(总第 418 期)
企业科技创新
基于 Python 的专业网络爬虫的设计与实现
姜杉彪,黄凯林,卢昱江,张俊杰,曾志高,刘
强
(湖南工业大学 计算机与通信学院,湖南 株洲 412007)
【摘 要】网络爬虫,又称网页蜘蛛、网络机器人。随着计算机技术的高速发展,互联网中
的信息量越来越大,搜索引擎应运而生。传统的搜索引擎会有返回结果不精确等局限性。
为了解决传统搜索引擎的局限性,专用型网络爬虫在互联网中越来越常见。同时,专用型
网络爬虫具有专用性,可以根据制定的规则和特征,最后只体现和筛选出有用的信息。
【关键词】Python;网络爬虫;数据挖掘;搜索引擎
【中图分类号】TP393 【文献标识码】A 【文章编号】1674- 0688(2016)08- 0017- 03
统之前进行分析,并设计出符合该系统的代码规范及功
0 引言
能模块等。整个网络爬虫系统均使用模块化设计,一个
功能类作为一个功能模块。这样做的目的是一方面可以
便于代码的维护,另一方面可以增加代码的重用性。通
过将整个系统进行模块划分,每个功能模块只实现一个
功能,最后所有的模块功能完成后,整个网络爬虫系统
在搜索引擎的使用过程中,用户认为通用搜索引擎
都有一个局限性,那就是在搜索结果中附带太多不必要
的信息。用户在使用搜索引擎后,仍然需要人为地从搜
索结果中寻找检索最终需要的信息。然而,在互联网飞
速发展的状况下,网络信息量突发式的暴增,计算机硬
件设备的技术不断进步,网络的信息容量和带宽也是日
新月异,在互联网中出现了多媒体和富文本的新技术。
[4- 5]
就能实现当初进行定义的系统功能 。本系统的需求分
析的任务是通过调查特定用户的上网行为习惯,开发符合
一类上网用户使用的专用型网络爬虫,根据用户的功能需
求明确系统需要实现的各个功能。并且,在设计系统的同
时,需要考虑系统今后的维护及改进问题。本文以网易新
闻爬虫系统为例,探讨专用爬虫系统的设计与实现。
随着这些信息的不断增加和积累,通用搜索引擎对类似
[1- 2]
这种多媒体或者富文本的搜索能力越来越差
。
为了解决部分用户对信息的检索要求,专用型网络
爬虫应运而生,为用户提供特定的信息抓取,开发出不
1.1 功能性需求分析
[3]
同特性的专用型网络爬虫 。本文以网易新闻爬虫实例为
网易新闻爬虫的具体功能包括对新闻标题、新闻ID、
新闻来源等信息进行抓取并存入数据库中。网易新闻爬
虫需要抓取的 URL链接是变化的,而不是固定的,因此
在爬虫的 URL策略中,需要解决 URL链接的访问策略
和去重。原站点网易新闻中的各类新闻,根据分析可以
看出,所有新闻一旦发布就不会对新闻内容进行二次更
新,因此网易新闻爬虫最终的抓取结果不需要对数据库
引导,对如何开发出专用型网络爬虫及制定不同的爬虫
策略进行了深入的研究。
1 爬虫系统需求分析与设计
为了保证网络爬虫系统的开发过程顺利,以及保证
最终的开发结果能满足基本的功能需求,必须在开发系
【基金项目】2015 年湖南省科技计划项目(项目编号:2015GK3024)“基于物联网的药品质量安全追溯系统”;湖南工业大学教学改革项目(项目编
号:2013B11)“基于移动互联网的网络教学资源建设与成效研究”;湖南省教育厅科学研究项目(编号:13C036)“WEB 数据挖掘在网络学习资
源推荐系统中的应用研究”。
【作者简介】姜杉彪,云南楚雄人,湖南工业大学计算机科学与技术专业在读本科生,湖南省高校大学生百佳党员,研究方向:网络数据分析与处
理;黄凯林,广东惠州人,湖南工业大学计算机科学与技术专业 2011 级本科生,研究方向:网络技术应用;曾志高,博士,湖南工业大学副教
授,硕士生导师,研究方向:模式识别,数据处理。
17
qiyekejiyufazhan
企业科技创新
2016年第 8 期(总第 418 期)
中已存在的新闻进行更新操作,只需将网站更新的新闻
进行入库操作。网易新闻爬虫架构图如图1 所示。
当中,Scarpy Engine 是一个抽象的爬虫框架引擎,
控制爬虫的所有操作;Spider 类为爬虫主要的页面处理
模块类,Item Pipleline 组件可以实现清理 HTML数据,
或者验证抓取的数据。
1.2 爬虫功能设计
网易新闻爬虫功能的具体设计思路如下:首先,网
易新闻爬虫不会与前端页面进行直接交互,而是通过系
统设置的定时任务,对爬虫进行定时执行,从而达到一
个自动定时向原站点抓取新闻的爬虫功能。其次,网易
爬虫被系统定时任务激活后,爬虫根据定义的 URL规则
对原站点的站点目录进行正则匹配,符合正则匹配的
URL链接则进行抓取,并且对抓取结果进行过滤和提取
需要的信息。最后,将抓取的新闻信息和数据库进行对
比,数据库中没有该新闻则进行插入更新,有则停止爬
虫,其流程如图2 所示。
图 1 网易新闻爬虫架构图
2 爬虫页面抓取模块
爬虫的页面抓取模块是爬虫程序的第一个执行模块。
在页面抓取实施之前,需要获得目标站点的状态,以及
DNS 解析和记录去重等各种功能。在爬虫进行页面抓取
的时候,必须保证目标站点的状态是可抓取的。因此,
部分目标站点如果要用户登录后才可以请求相应的服务
器资源,则必须对该目标站点进行模拟登录后才可进行
页面抓取。
通过模拟登录可以解决目标站点的登录限制。模拟
登录采用完全遵循目标站点的登录规则,使用用户的用
户名、密码、cookies 和伪造 User- Agent 及 Referer。
最后通过返回的 session 与服务器进行请求交互并且进
行页面抓取,完成整个页面抓取的过程。
图 2 网易新闻爬虫流程图
为了避免重复抓取的现象造成系统性能差及提升信息的
高效性,因此在页面抓取过程中,做好对应的记录去重。
DNS 解析和 URL记录去重是页面抓取模块比较重
要的一环。当大量的页面需要进行页面抓取,以为页面
抓取都是通过 URL地址进行抓取,因此在请求 URL时,
需要对 URL进行解析。当需要解析 URL的记录非常多
时,DNS 解析就有可能是页面抓取的瓶颈部分,要处理
DNS 解析的瓶颈,最直接的方法是对DNS 解析结果进
行本地缓存。
3 爬虫页面处理模块
对页面抓取结果需要进行相应的处理。页面处理包
含了对 HTML源码的处理和过滤,过滤出需要的信息,
最后对过滤出的信息进行整合,并进行入库操作。通常
利用正则表达式来进行页面处理,但是当 HTML源码非
常多时,在编写正则表达式时会显得非常困难。
记录去重是一种对已经抓取的 URL地址进行记录去
重。页面抓取在一定的时间内,只需要进行一次抓取。
qiyekejiyufazhan
18
全部评论(1)
2022-05-07 09:53:0919506108863
资源很棒