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