基于python 的网络爬虫技术研究

2019-02-13 19:18杨昱昺
数字通信世界 2019年12期
关键词:爬虫搜索引擎网页

毕 森,杨昱昺

(宁波财经学院,宁波 315175)

1 引言

Python 语言是一种计算机程序设计语言,同时对编程语言的解释性、编译性、互动性以及面向对象进行高层次的结合,并且具备较强的可读性和语法结构,可以为网络爬虫技术提供必要的辅助。而在当前大数据的背景下,利用python 进行网络爬虫技术的发展也是大势所趋,接下来将就python 语言的主要内容及特点进行简析,并介绍几种促进网络爬虫技术发展的方式或方法,为大数据的发展尽绵薄之力。

2 对python 语言主要内容及特点的论述

Python 语言是一种解释性语言,较其他语言省去了编译这一环节,可以节省编程人员的工作时间,而其他语言经常使用英文关键字以及标点符号,python 语言具备特色的语法结构,具备较强的可读性,同时具备交互性、代码定义清晰、结构简单、源代码易维护、可移植、可扩展以及可嵌入等特点,可以在UNIX,Windows 和Macintosh 等系统上兼容,具有丰富的库,并且可以通过开放的源代码将其移植到其他平台。另一方面,python 语言代表着简单主义思想,可以使用户专注于解决编程问题而不是关注语言本身,该语言基层都是采用C 语言进行编写,与其他库函数以及平台有较高的兼容性,运行速度较快,同时该语言使用说明文档较为简单,易于操作,受到较多使用者的青睐。另外,随着语言版本的更新以及各项功能的添加,python 语言得以在更广阔的领域应用,可以应用于平台及网页的开发利用,利用python语言来发展网络爬虫技术,可以在一定程度上满足网络安全以及产品调研时的数据支持,提升搜索引擎以及数据获取的工作效率[1]。

3 如何利用python 来发展网络爬虫技术

3.1 充分发挥python 语言的优势

要想利用python 语言来发展网络爬虫技术,第一步需要做的是充分发挥python 语言的优势。Python 语言具有语言简洁、使用方便以及资源丰富等优势,在发展网络爬虫技术时应当充分利用此类优势,如在利用python 语言研发搜索引擎或者抓取网页内容时,不需要较为繁多的代码编辑器、编译器、调试器以及图形用户界面等工具,其所需要的集成开发环境只包括文本编辑器等工具,可以通过插件使Eclipse 作为python 语言的开发工具,同时具有较高的灵活性,并进行较多应用的开发。通过发挥python 语言的优势,可以使网络爬虫技术得到更加广泛的应用,使网络爬虫按照python 语言所编写的程序,自动抓取网页中需要的程序或者脚本,通过此种方式来获取网页的内容及检索信息,从而完善网络爬虫技术的应用环节。

例如,技术人员可以利用python 语言较强的网络支持库以及爬虫框架,通过网络支持库中的函数或者现有函数,编写所需要的程序代码,对网页进行下载应用,同时利用爬虫框架,提取该网站中的结构性数据,并进行信息的挖掘以及储存,为搜索引擎提供必要的数据支持。而利用python 语言的解析库,可以对网页中的内容进行解析,同时结合数据的表达式,从而更加方便地抓取内容。另外,技术人员也可以利用python 语言的文本处理函数,对网页内容的文本内容以及字符串进行处理,为搜索引擎以及网站抓取环节提供正则表达式,来帮助网络爬虫技术处理网站内容。

3.2 为网页抓取方式制定技术标准

另一个需要采取的措施是为网页抓取方式制定技术标准。网页抓取环节的主要问题为如何对待抓取的URL 队列进行顺序排列,也称为抓取策略。而网页抓取策略一般来说有深度优先抓取策略、最佳抓取策略以及广度优先抓取策略三种。技术人员需要根据搜索引擎的实际情况,对三种抓取策略进行选择与采用。

例如,对广度优先抓取策略来说,其主要针对主题爬虫来进行应用。具体操作过程为首先对该层次进行全面搜索,接着对下一层次进行搜索,逐层顺序搜索,特别是对于初始URL 距离较近的网页,采用此种策略来进行网页抓取较好,从而来帮助网络爬虫抓取所需网页信息。而对最佳抓取策略来说,操作过程为计算URL 队列与将要抓取网页内容的相似度,找出与URL 队列相似度较高的网页,对其进行搜索抓取,此种方式可以使网页抓取策略更加科学合理。深度抓取策略则是以深度作为搜索主体,通过超链接的方式对网页内容进行深度优先搜索。以上三种网页抓取策略各有优势,技术人员需要根据实际情况选择合适的抓取策略,并制定技术标准,使其发挥应有的作用。

3.3 对各个控制模块进行优化管理

除了充分发挥python 语言的优势以及制定技术标准之外,对各个控制模块进行优先管理也是促进网络爬虫技术应用的重要措施。整个系统模块分为爬虫主控模块、网页下载模块、URL调度模块、数据清洗模块、数据显示模块以及网页解析模块。技术人员需要对控制模块进行优先管理,完善各个模块的使用环节,为网络爬虫提供科学完整的URL 队列、数据获取、数据处理以及储存等环节[2]。

4 网络爬虫的工作原理及分类

在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS 脚本标签、CSS 代码内容、空格字符、HTML 标签等内容处理掉,爬虫的基本工作由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle 数据库,并对其建立索引。

目前开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector 还有其他的。爬虫目前基本可以分3类:(1)分 布 式 爬 虫:Nutch;(2)JAVA 爬 虫:Crawler4j、WebMagic、WebCollector;(3)非JAVA 爬虫:scrapy(基于Python 语言开发)。

5 结束语

python 语言在网络爬虫技术的应用方面有着重要的作用,特别是在大数据的背景下,利用python 语言来应用网络爬虫技术可以完善搜索引擎以及网页抓取等环节,从而使其为大数据的发展贡献力量。

猜你喜欢
爬虫搜索引擎网页
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
基于HTML5与CSS3的网页设计技术研究
世界表情符号日
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
大数据背景下校园舆情的爬虫应用研究
基于URL和网页类型的网页信息采集研究
大数据环境下基于python的网络爬虫技术
网络搜索引擎亟待规范