2019年2月
基于Python 爬虫原理的篮球鞋选择程序的设计与实现
张世元(郑州市第七中学,河南省郑州市450000)
【摘要】伴随着篮球鞋工艺的进步及产业升级,多类型多种类的篮球鞋出现在大众的视野当中。与此同时,消费者对篮球鞋的选择也逐渐增
多。针对篮球爱好者在篮球鞋认知存在选择局限性、认知局限性等问题,
针对于市面上关于篮球鞋选择程序的空白,也为了可以让球鞋爱好者选择合适的球鞋,本文笔者尝试通过利用Python 爬虫,定向抓取篮球鞋相关网站中与篮球鞋相关内容,对挖掘到的文本进行关键信息抽取、分
类、归纳,得到相应篮球鞋评价分析结果,
并且利用Python 将爬取到的内容与相应人的参数做出关联分析,设计并编写相应的程序。实验结果表明:本程序具有数据采集速度快、简单实用、针对性强等优点。为不善于篮球鞋选择的消费者提供了便利的方法,
python是做什么的通俗易懂的
换言之提供了一种快速获取批量篮球鞋数据的方法,同时也有利于对篮球鞋数据后续的收集分析。
【关键词】Python ;
爬虫;程序设计;篮球【中图分类号】TP391.1【文献标识码】A 【文章编号】1006-4222(2019)02-0208-02
引言
过去几十年里,篮球鞋设计工艺迅速发展,材质工艺也有很大提高,在市场上产生了适应球员不同位置、身高体型、进攻方式以及不同价位层次的篮球鞋。如何选择合适的篮球鞋成为了一个问题。同时,人们可以在网络上搜集到繁多的篮球鞋信息,许多著名的篮球鞋论坛如虎扑社区等成为了具有较大规模的篮球鞋公共数据源。如何有效的提取并利用这些信息对篮球鞋选择者来说是一个巨大的挑战。对于处理网络上广泛的数据并整合到本地,Python 爬虫有着自己强大的功能,面对网络上篮球鞋的数据处理,笔者考虑借助Python 爬虫的功能对其实现相应的处理,本文将详细论述笔者将Python 爬虫应用在篮球鞋选择上的过程。
1相关概念
1.1网络爬虫基本概念
总的来说网络爬虫是指通过已有的既定规则,自动地抓取网页信息的计算机程序,既通过程序模拟浏览器请求站点的方式,把站点返回的HTML 代码/JSON 数据/二进制数据爬到本地,进而提取自己需要的数据。其目地在于将目标网页数据批量性的下载至本地,便利在本地对文件的分析和利用。
爬虫技术相应优势:
爬虫技术的兴起源于网络数据的广泛分布以及其可用性,所以通过爬虫技术,我们能够较为容易的获取网络数据,并通过对数据的分析,得出有价值的结论。基于Python 语言的简单和通俗易懂,加上使用时配合上正则表达式以及已存在的爬虫框架和工具包便利了开发者的操作,使得数据抓取变得简单有趣。
1.2Beautiful soup 相关概念及优势
Beautiful Soup 是由开发者Leonard Richardson 针对于快速抓取有效数据设计的一款Python 爬虫库函数。该软件3.0之前和4.0之前的版本许可协议分别是是基于Python 软件基金会的许可证和MITLicense 的许可证。目前在网络山被开发者广泛使用的版本2016年8月发布的4.5.1版本。针对于开
发者来说,Beautiful Soup 的API 简单且易于理解,对于有些难以阅读的标签有着自己独特的优势。但同
时Beautiful Soup 还需要配合上urlib2或者requests 这些函数库。通过上述函数库的组合,可以使开发者轻松地下载网络上的数据并解析其元素。
2技术原理
2.1beautiful soup 工作原理
首先Beautiful soup 会自动选择合适的解析器通过解析器来解析HTML 文档,将复杂的HTML 文档转化成树形结构并使每个树节点都对应python 对象。文档都被解析成Unicode 格式,输出文档为UTF-8编码格式。Beautiful soup 可以对文档树进行遍历和搜索,它提供了多种操作和遍历子节点的方法。Find ()和find_all ()是两个遍历节点的重要方法。Find_all ()方法搜索当前标签的所有子节点,并过滤出符合条件的节点。如果我们只需要得到一个返回结果,就需要使用find ()方法。如果想要得到节点包含的文本内容,就可以使用get_text ()方法。此方法可以获取到标签中所包含的所有文本内容,并返回Unicode 字符串内容。Beautiful soup 还有很多强大的功能,例如其append ()方法可以像python 中的appen ()方法一样修改文档树;支持大部分的CSS 选择器;指定文档解析器;使用diagnose ()方法诊断代码等。
2.2Request 库
Request 库是python 爬虫必须的库,它也是python 内置的库。我们使用request 库是模拟客户端像服务
器发送请求的过程。 ()是获取HTML 网页的主要方法,对应于HTTP 的GET ,它构造出了一个向服务器请求资源的request 对象,并返回一个包含服务器资源的response 对象,该对象存储了服务器响应的各种内容。要对响应的内容,进行读取,可以使用.text ()方法,读取响应内容的字符串形式;.status_code ()方法,请求返回的状态,状态码200表示连接成功,404表示连接失败。我们还可以使用request 库中的异常处理方法抛出请求过程中的异常。例如使用timeout ()函数在设定的秒数时间之后停止等待响应,如果不使用,程序可能会永远失去响应;遇到网络问题(如DNS 查询失败、拒绝连接等)时,Re 鄄quests 会抛出一个ConnectionError 异常;如果HTTP 请求返回了不成功的状态码,.raise_for_status ()会抛出一个HTTPError 异常。
图1爬虫
原理
论述
208
2019年2月
3实验与实施
3.1设计需求调查
在对爬虫系统的开发过程当中,首先需要解决的问题是对程序需求的相应分析,笔者根据对篮球鞋的一些了解,简单分析了人们的一些需求,设计了针对广大篮球鞋爱好者的调查问卷,展开了调查。
在所调查的近一千名球鞋爱好者中,大多数球鞋爱好者普遍认为选择球鞋是一件非常困难的事情。470位爱好者认为自己经常买不到适合自己身体和打球风格球鞋,635位球鞋爱好者认为自己常常不到在自己理想价格范围内的适合的篮球鞋,349位球鞋爱好者认为自己很难在网络上筛选出适合自己的球鞋。在最后一项调查显示过半数的爱好者表示需要一个有篮球鞋选择功能的软件,并表示自己会参与使用。
调查的结果表示:网站上散落的篮球鞋数据不便于爱好者们的对比分析,相应的程序在目前的市场上几乎空白,需要这样一个可以便利于球鞋爱好者选择球鞋的程序的呼声较为强烈。
功能设计:
针对上述问题的调查结果,笔者进行了程序设计。程序将拥有的功能应满足拥有广泛集合球鞋参数、拥有一定搜索整合功能、并且可以快速查并比对球鞋相关参数等方面的功能,以满足软件在人们对于选择篮球鞋上的不同需求。
3.2实验实施
3.2.1寻url 袁获取网页源码
打开虎扑社区球鞋社区板块的网页,传入该板块的url 。用requests 库请求网页并返回网页源代码文本。用正则表达式解析出球鞋名称和价格材质等相应参数,并保存在本地的列表中。此处关于球鞋的相关参数便是本爬虫程序所寻的数据源。
3.2.2抓取数据
利用quest 库来抓取网页上的数据,利用Beauti 鄄fulSoup 库解析html ,以此将网页上的内容抓取下来。
接着我们需要解析网页,出其中的篮球鞋信息,这里我们主要需要篮球鞋名称和价格。
3.2.3运行爬虫程序最后我们需要一个主函数作为入口,来完成爬取过程,代码示意图如图4。
3.2.4数据导出
笔者选择利用Python 将爬取下来的数据主要以CSV 格式进行导出。在导出的过程中尽可能的减少数据编码等问题,避免文件失效、导出文件出现乱码等不必要的问题。
3.3结果与分析
实验完成之后,笔者针对篮球爱好者展开试验,分析他们对程序的使用感受,并设计了问卷调查,获得了以下数据。
大部分的被调查者认为该应用程序广泛涵盖了篮球鞋的信息,并具有时效性,体现出了基于Python 爬虫在广泛获取网络数据上所具有的优越之处,同时也符合了笔者在前文中对Python 爬虫的相关优势分析。
4改进
针对于上面的实验以及调查所得到的结果,笔者认为该程序还有进一步的改进和扩展的空间。首先针对与调查者所提出的问题,可以在本程序上拓展出一些相应的模块,例如球鞋之间的对比、网络上球鞋价格浮动曲线、增加已购买者的评论等方面。同时,本程序可以针对于数据的及时更新做出相应的调整,以确保参数的时效性。
其次对于爬取下来的数据,本实验主要以CSV 格式进行了导出,笔者准备在下一阶段将得到的数据以数据库的形式整理归纳下来,以便于日后的整理。
5结语
综上所述,爬虫技术在网络信息资源获取上具有高效性和实效性。同时Python 这门语言具备强大功能,支持多种附加工具软件,信息数据的摘取变得简单高效。基于前文论述的条件,将爬虫应用到篮球鞋选择软件设计上,能够为信息的抓取提供最有效的帮助。但同时当前设计出来的程序仍然有很大的改进空间,笔者会在接下来的时间里针对于上述实验中发现的问题作出相关的改进。
参考文献
[1]白雪丽.浅析基于Python 爬虫技术的特性及应用[J].山西科技,2018(2):53~55.
[2]陈猛.基于Python 的新浪新闻爬虫系统的设计与实现[J].现代信息科技,2018(7):111~112.
[3]熊畅.基于Python 爬虫技术的网页数据抓取与分析研究[J].数字技术与应用,2017(9):35~36.
收稿日期:2019-1-22
图2提取网页代码示意图
图3解析商品页面代
码示意图
图4执行爬虫程序主函数代码示意图
图5调查问卷结果
示意图
论述209

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。