logo资料库

基于Python爬虫原理的篮球鞋选择程序的设计与实现.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
论述 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].
分享到:
收藏