1概述
网络信息技术的快速发展使得越来越多人开始重视网络爬虫技术的应用,使用网络爬虫技术,能够在短时间内到网页中自己想要的内容,然后再直接返回给广大用户所需要使用的信息数据,使用这种技术在某种程度上能够节省更多人力和物力。近些年,随着网络信息技术的快速发展,使爬虫技术逐渐成为搜索引擎中的重要内容。例如,百度和谷歌都是比较常用的搜索引擎,通过这些搜索引擎能够访问互联网中的各种资源。
2Python语言
Python语言是一种比较常用的开发网址工具,这种语言自身具有非常强大功能。近些年,随着互联网行业的快速发展,各种行业自身都需要拥有自己的网址,这就给Phthon语言的应用提供了很大发展机会。Python 语言能够兼容各种不同类型的操作系统[4]。站在网址开发的角度上分析来说Python是属于面向对象语言,这种编程语言能够在短时间内实现对象编程,Python属于解释性语言,整体通过简单的语法与动态输入有力支持,使得Python逐渐成为各种操作系统平台上常用的脚本语言之一,特别是那些追求高性能的
综合应用程序开发过程中Python语言占有重要地位[5]。除此之外, Python在某种程度上还提供了网络综合信息协议数据库,这种语言能够在短时间内对各种网络协议进行抽象封装。因此,程序员只有集中各方面精力运用合理的程序逻辑来进行管理才能够完善Python语言模式,并且在短时间内还能够提升整个网址的开发速度。
3基于Python对网络爬虫系统的设计与实现3.1网络爬虫系统设计需求
网络爬虫(又被称为网页蜘蛛,网络机器人),爬虫就是模拟客户端发送网络请求,接收请求响应,按照一定的规则,自动地抓取互联网信息的程序。网络爬虫系统设计是一项纷繁复杂的综合性工作,在对其进行设计过程中常常会面临各种不同类型的问题。通常情况下,这些问题主要表现在以下几个重要方面:(1)网址链接资源提取,网址一般是指依据互联网上相关规则使用HTML等工具制作来展示整个网址资源的集合。另外,广大民众还可以通过网站寻到自己想要的一些内容或者发布一些自己需要的相关重要信息。然而,网址的提取并非一件容易的事情,相关工作人员可以先对网址进行初始化操作,然后通过网页分析能够在短时间内提取到更多新的网址链接。(2)下载需要提取的重要网址界面,网址里边涵盖的内容种类非常多。(3)网址管理,网址种类非常多,这就给相关维护工作人员带来了很大压力和挑战,因此,相关工作人员应该综合其他各方面因素去考虑和分析,通过使用科学、合理的方法来加强网址的综合管理,正确的网址管理在某种程度上能够有效预防各种网址重复现象发生。(4)网页内容分析和管理,网页管理是一项纷繁复杂的系统性工作。因此,相关工作人员应该投入更多时间和精力加强网页的综合
管理,在对网页内容进行管理过程中,相关工作人员必须把各种不同类型的信息数据存入到数据文件当中。
3.2网络爬虫相关Python数据模块
(1)网址管理器,网址管理是一项复杂的工作。通常情况下,网址管理方法种类可以分为以下3个重要方作者简介:陆树芬(1965-),女,讲师,研究方向:网络搭建及编程、大数据技术与应用专业建设及人才培养模式。
收稿日期:2018-11-17
基于Python对网络爬虫系统的设计与实现
陆树芬
(贵州航天职业技术学院,贵州遵义563000)
摘要:网络信息技术持续不断快速的发展,越来越多人开始关注Python对网络爬虫系统的设计。然而,各种网址信息数据提取是一项复杂的工作,通过使用网络爬虫技术,能够在短时间内提取到各种有价值的信息数据,介绍Python语言,讲解了基于Python对网络爬虫系统的设计与实现。
关键词:搜索引擎;Python语言;网络爬虫;贴吧
面:首先,内存存储网址,随着现代化网络信息技术的
快速发展,各种不同种类的技术开始被应用到网址管理
中。特别那些信息数据量少的情况,相关工作人员可以
把网址存入到两个不同类型集合当中,在使用内存存储
网址时可以被划分为待爬集合与已爬集合这两种不同模
式,在Python中能够通过使用Set0这种模式来进一步
实现,并且Set0在某种程度上还具有清除重复值的效
果。Python网络爬虫技术自身具有各种非常强大的功
能[6]。其次,关于重要的信息数据库进行永久存储,在创建表格过程中一般都具有两个不同类型的字段。一般
情况下,通过科学、合理的方法能够表示不同类型的网
址。最后,存储缓存信息数据库redis,这种缓存信息
数据库能够被广泛地进行存储各种不同类型的网址。(2)网页下载器也是网络爬虫程序中的重要核心模块,不同类型的网页内容大多数都是以HTML格式为主。通常情况下,Python中支持的网页下载工具种类可以被分为以下两种:Python官方支持下的各种不同类型的综合基础信息数据模块,request是属于第三方工具包,其自身功能非常强大。除此之外,在Python网络爬虫技术中网页解析器是对各种不同类型网页中的信息数据综合分析的工具之一。一般情况下,Python支持的网页解析器方法有以下两种:第一种是使用正则表达方式把整个网页文档来当成一个字符串,然后再通过使用模糊匹配的方式提取更多有价值的信息数据。由此可以得出网页解析器功能非常强大,如果文档太复杂的话,使用这种方式也会变得非常复杂。另外,在正则匹配过程中如果存在差池那么整个程序将会处于永久循环当中。除此之外,相关工作人员还可以通过使用Html编辑语言来创建DOM信息数据树,通过树的形式能够把各种不同类型的节点进行搜集。除此之外,在使用DOM树形结构过程中一定要充分依据上下级关系来定位各种不同类型的元素。信息数据导出,使用Python 能够把各种信息数据在短时间内转换为CSV格式或者其他与此相关的格式文件,在对其进行导出过程中一定要注意各种信息数据编码的使用,否则被导出的很多文件在短时间内就会出现各种乱码现象的发生。
3.3网络爬虫实现
通过实现任意贴吧的爬虫,并将网页保存到本地,
来完成简单的网络爬虫实现。如何实现网页的URL地
址爬取,设计思想如下:
(1)创建一个TiebaSpider类,在这个类中分别有main、_init_(self,tieba_name)、parse_url(self,url)、save_html(self,html,page_num)和run(self)5个函数。python爬虫开发
(2)定义_init_(self,tieba_name)函数,在函数中通过定义一个地址列表self.url_list[]、贴吧名称变量self. tieba_name以及self.headers的初始化,使用循环语句来完成获取完整的URL地址并追加到列表中。(3)定义parse_url(self,url)函数,通过语句re⁃(urs,headers=self.headers)来专门发送请求,并获取响应。通过判断发送请求,如果成功,返回responses的值,如果不成功,判断是否为最后一页,如果是,返回“error”,否则返回“None”。(4)定义save_html(self,html,page_num)函数来完成网址的保存。
(5)定义run(self)函数来完成整个设计的逻辑思路,其实现如下:
def run(self):
#1.到URL规律,获取每一页的url地址
forurl in self.url_list:
#2.发送请求获取响应
html=self.parse.url(url)
#3.判断是否请求成功
if html==”error”:
break
if html is not None:
#4.保存
page_num=int(url.split(“=”)[-1])/50+1
self.save_html(html,page_num)
(6)通过执行main函数,在main函数中可以自行设置想要爬取的贴吧网页(如本例以爬取贵州航天职业技术学院贴吧为例),其实现如下:
if_name=‘_main_’:
tieba=TiebaSpider(“贵州航天职业技术学院”) tieba.run()
这样就可以实现对贵州航天职业技术学院贴吧网页的爬取。
4结语
网络爬虫技术自身具有非常强大功能,这种技术能够在短时间内提取各种不同类型的信息数据。与此同时,在某种程度上还能够挖掘出更多有价值的数据价值。另外,Python自身语言功能非常强大,能够为各种(下转第51页
)
不同类型的软件工具包提供重要支持。除此之外,Python 技术在某种程度上还能够实现对各种Web 信息数据信息的提取。
参考文献
[1]李琳.基于Python 的网络爬虫系统的设计与实现
[J].信息通信,2017,(9):26-27.
[2]贾棋然.基于Python 专用型网络爬虫的设计及实现[J].电脑知识与技术,2017,13(12):47-49.
[3]郭丽蓉.基于Python 的网络爬虫程序设计[J].电
子技术与软件工程,2017,(23):248-249.(1)功能和特性与要求有差距。
(2)功能和性能与要求一致,软件是可以接受的。这个阶段发现的问题往往和需求分析阶段的差距
有关。6.2.4平行运行
所谓平行运行就是同时运行。新开发出来的系统和
将被它取代的旧系统,以便比较新旧两个系统的处理结果。目的有:
(1)可以在准生产环境中运行新系统而有不冒风险。(2)开发者能有一段熟悉新系统的时间。(3)可以验证使用手册之类的文档。能够以准生产模式对新系统进行全负荷测试,可以
用测试结果验证性能指标。6.3设计测试方案
设计测试方案是测试阶段的关键技术问题。所谓测
试方案包括预定要测试的功能,应该输入的测试数据和预期的结果,目标是设计一组可能发现错误的数据。系统中,应用了如下测试方案:基本用到逻辑覆盖;语句覆盖;判断覆盖;条件覆盖;判定/条件覆盖;条件组合覆盖;点边路径覆盖。
用例名称:系统集成测试(1)基本描述:对5组博客Markdown 文本分别进行测试。
(2)测试方案:对5组博客Markdown 文本分别进行测试,查看是否正常生成博客。
(3)预期结果:均能正常生成博客。(4)测试成果:和预期结果一样,通过测试状态,
测试成功。
6.4系统维护
软件维护是软件生命周期的最后一个阶段,处于系
统投入生产性运行以后的时期中,所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件的维护有适应性维护;完善性维护;改正性维护;预防性维护。
本系统为适应维护的需要,采用如下措施:(1)软件配置程序源代码。(2)开发过程文档齐全。(3)设计过程中各模块均考虑或预留完整性和可维护性接口等部分。
(4)本软件的模块化,详细设计的文档、源代码内部的文档有详细说明、注释均可提高可维护性。
(5)尽量松散〈低偶合〉,高内聚。
参考文献
[1]戴一平.基于WordPress 的CMS 分析与设计.计算
机与现代化,2011,04.
[2]宋容嘉,杜晖,曹玉玺,沈奕娜.基于WordPress
的中华文化英文博客的设计与实现.计算机与现代化,2013,07.
[3]方晖,蔡昭权.基于.NET 的博客系统的设计与实
现.惠州学院学报,2013,03.
[4]张智,郑卉,蒋依伶,袁欢欢,郑明清.使用Github
实现高效的团队协作开发.电脑知识与技术,2015,07.[5]Markdown 语法(简体中文版).
[6]董斌.静态页面生成的网站系统研究.福建电脑,2009,08.
[7]白金牛,李慧萍,王培吉.ASP.NET 下利用动态网
页技术生成静态HTML 页面的方法.计算机应用与
软件,2010,(1).
[8]王茂昌.论自动生成静态页面在内容管理系统中的
实现.中国高新技术企业,2008,18.
[9]Stuart J.Fitz-Gerald.Smashing WordPress :Beyond
the Blog International journal of information manage⁃ment,2011,31(2).
[10]Chunguang Bi.Based on Bootstrap and Wordpress to
Develop Personal Blog Manufacturing technology,elec⁃tronics,computer and information technology,2014.(上接第27页)