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