基于Python的淘宝商品价格爬虫程序设计与实现
蔡振海
(江苏经贸职业技术学院 江苏南京 211100)
摘 要: 网上商品种类繁多,价格也各异,如何在海量信息中自动、快速获取某种商品的价格成为一个急需解决的问题。本文以Python语言为基础,使用Requests库和re模块进行程序设计,通过商品关键词对商品的信息及价格进行快速爬取,以淘宝商品价格为例,实现了商品价格的快速获取。
关键词: Python;爬虫;商品价格
网络爬虫是一种能自动地从海量的web资源中抓取网页内容的程序[1]。现如今,网络信息的数据量非常大,手动收集信息的方式已经不适用了。快速、自动地获取信息是目前信息获取的趋势。爬虫的特点正符合这一要求。它能在互联网资源中通过网址一个网页、一个网页地爬取[2]。
一、商品价格爬虫程序设计
(一)编程环境
本文使用Linux作为编程的操作系统,编程语言为Python3.X,集成开发环境为当下流行的Pycharm。
(二)技术原理
利用Python的Requests库向目标网页发送Request。Requests库能自动爬取HTML页面并自动网络请求提交[3]。Requests库的get方法能构造一个向服务器请求资源的Request对象,并返回一个包含服务器资源的Response对象。
“那我试试。”向来抵触朝敏数落的他,这回却认真地答应了。在儿子发生这样的变化以后,他也意识到孩子走上偏道跟自己错误的示范和教育不无关系,他的确是该收敛一些了。
通过右键淘宝商品网页源代码发现,所有商品的商品名称存放在键为raw_title的字典中,而商品的价格存放在view_price中。re模块是Python的一个标准库,能动态地、模糊地匹配字符串。本文通过正则表达式匹配raw_title和view_price来完成商品名称和价格的抓取。
print(g_title.format("序号","价格","商品名称"))
二、商品价格爬虫的具体实现
(一)导包
s_price = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)
从表3可知,样品回收率敌敌畏90.8%、氧化乐果80.0%、甲基对硫磷93.0%,乙烯菌核利93%、联苯菊脂98%、氯氰菊脂84%;氰戊菊脂90%。所有检出农药组分的添加回收率均70%~120%,符合农产品质量安全检测计量认证要求。
(二)获取淘宝搜索页面的信息
赶回芜湖,夜里九点多了,在妹妹怂恿下,我们去双桐巷,只为喝一杯赤豆酒酿——醇正的赤豆,软糯甜腻,慢慢滑过喉咙;酒酿发酵得刚刚好,不酸,微甜,特别亮喉。味蕾的记忆力相当倔强,即便暌隔十来年,也会昨日重现迅速复苏。倘若是一边吃麻辣烫,一边喝一杯冰镇赤豆酒酿,滋味慨当如何?不禁要背诵曹孟德的《观沧海》了。
先打印表头:
(三)提取商品的名称和价格
通过正则表达式对名称和价格进行匹配:
因为目前反爬虫机制的存在,所以需要加上kv作为requests的请求头。我们可以通过键盘的F12获取cookie和useragent。
import requests
s_titletlt = re.findall(r'\"raw_title\"\:\".*?\"',html)
采用for循环的方式保存商品名称和价格。
import re
(四)打印商品名称和价格
目前的教学方法种类很多,如“讲授法、问题法、讨论法、探究法、实验法等等,这些教学方法给有千秋,但谁也不能说哪一种方法好,哪一种方法不好。从学生的角度看,由于他们的个体差异,即使同一知识点,也要采用不同的教法,因此,每个教师在选择教法时,切记生搬硬套,而是应注重研究所用的教学方法是否能更好的体现快乐教育原则,是否能充分调动学生的积极性和主动性,只有从教学内容出发,从学生实际出发,才能设计出优良的教法,才能真正的体现每个教师自身的教学特色,否则,即使已被公认的教法,如果孤立的应用,或机械的照搬都难以凑效,甚至适得其反。
小学体育教学需要根据小学生的喜好改进教学方法和手段,小学生处在对万事万物充满好奇心的世界里,很多学生对体育学习都保持三分钟热度,因为体育锻炼的劳累和艰苦,很多学生对这样的活动选择逃避,所以教师要想办法丰富课堂教学手段,采用灵活有趣的教学方法来吸引学生的注意力。比如,很多学生厌烦广播体操,觉得这样的活动既没有美感又比较单一,教师可以通过当下流行的网红舞蹈进行代替,简单的舞蹈同样可以锻炼学生的四肢协调能力;可以采取比赛赢奖品的形式建立足球队,在全校进行足球比赛,激发学生学习和锻炼的热情。
g_title = "{:4}\t{:8}\t{:16}"
课前布置问题后,学生在完成问题任务过程中,需要教师的指导与矫正。教师要注意启发引导,及时辅导,并给予学生思考的空间。要求各组在上课前,将完成的问题交给教师,教师与每个小组长进行作业沟通与反馈,之后各组进行课前修改,准备课堂交流。
采用for循环进行结果的输出。
(五)构造主函数
使用input函数提示输入商品名称,然后构造商品的网址URL:
'https://s.taobao.com/search?q=' + goods
调用定义的函数进行爬取。
三、爬取结果
以Python作为商品关键词进行爬取。为了节省篇幅,截取了前16个商品的爬取结果,如下图所示。程序成功地将商品名称和价格爬取下来。
图1 爬取结果
四、结束语
本文使用Python的Requests库和re模块成功实现了对淘宝商品名称和价格的爬取。Python简洁易用、第三方库功能强大的特点特别适合爬虫程序的设计。该程序只是简单地实现了名称和价格的爬取,进一步的数据分析将会在后期文章中展现。
参考文献:
[1]周立柱,林玲.聚焦爬虫技术研究综述[J].计算机应用,2005,25(9):1965-1969.
[2]迟殿委.基于Python的网页图片爬取[J].电脑编程技巧与维护,2019(5).
[3]仇明.基于Python的图片爬虫程序设计[J].工业技术与职业教育,2019(1):1-3.
基金项目: 2018年度江苏省教育信息化研究课题项目(课题批号:20180040)。
标签:Python论文; 爬虫论文; 商品价格论文; 江苏经贸职业技术学院论文;