一种基于Python的商品信息采集方法

来源 :无线互联科技 | 被引量 : 0次 | 上传用户:calidaw
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着电子商务的飞速发展,选择电商平台的商品数据作为实验数据集的科研人员越来越多,为了解决科研人员获取商品数据困难的问题,文章以“淘宝网”作为目标网站,提出了一种基于Python的商品信息采集方法。首先对商品信息接口所需参数进行分析,优化访问链接,然后使用Python提供的第三方Requests和BeautifulSoup库,对商品信息进行下载和清洗,最后将清洗后的数据存储到MongoDB数据库中。
  关键词:电商平台;Python;数据采集
  0    引言
  随着我国互联网的飞速发展,网上购物越来越受到人们的青睐,现在已经成为一种重要的购物方式。淘宝、京东等大规模电商平台每天都会生产海量的商品交易数据,针对这些数据进行分析与挖掘,对于改善消费者购物体验、提高商品销量等具有非常重要的研究价值,因此吸引了一大批科研人员对电商数据进行研究[1]。但网站出于安全和性能的考虑对其中的数据都制定了很严格的保护措施,想要获取平台中商品数据并不容易,为了解决科研人员获取商品数据困难的问题,设计并实现一种商品信息采集方法显得尤为重要。
  1    爬虫设计与实现
  1.1  接口参数分析
  电商平台商品种类繁多,商品数量更是数以万计,为了便于消费者快速定位自己感兴趣的商品,平台通常都会提供“商品搜索”功能,例如淘宝、京东、拼多多。以在淘宝网的商品检索框中搜索“笔记本电脑”为例,通过对搜索返回的前三页结果页面对应的链接分析,发现q后面的值是搜索的关键字,“ie”的值为网页编码格式,“s”的取值与搜索结果的页码相关,并发现s=(页码-1)*44。最后,对搜索结果页面对应的链接优化得到访问搜索结果页面的第n页的URL用Python语言表示为:“https://s.taobao.com/search?q={keyword}&s={page}”.format(keyword=keyword,page=(n-1)*44)。
  1.2  爬虫算法设计
  爬虫程序的流程如图1所示,具体步骤如下:(1)访问start_url页面(我们将点击搜索按钮后返回搜索结果的第一个页面称之为start_url页面),获取返回搜索结果的总页面数total_page_num。(2)判断检索结果页面是否遍历完成,如果完成转到8,否则继续执行3。(3)对待访问的page_num页面的链接进行优化。(4)将检索结果中的第page_num页内容下载至本地。(5)从下载的网页中解析商品详情页包含的商品信息。(6)将采集到的商品信息存入MongoDB数据库。(7)page_num+=1,重复步骤2—7,抓取剩余检索页面中的商品信息。(8)程序运行结束。
  1.3  商品信息下载
  对于商品信息的下载,主要使用Python提供的第三方库Requests[2],它是基于Python开发的HTTP库,不仅可以重复读取HTTP请求返回的数据,还可以自动识别网页编码,可以轻松模拟浏览器的工作完成网页下载任务。具体实现代码如下所示:
  head={‘User-Agent’:’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36’,’Connection’: ‘keep-alive’}
  def get_index(url):
  data=requests.get(url,headers=head,timeout=2)
   return data
  1.4  商品信息清洗
  通过对下载的网页源码分析发现,在一个script的标签中可以找到关于商品的所有主要信息,如商品的名称、价格、邮费、付款人数、图片地址、店铺名等,这些数据以json格式被存储。对于商品信息清洗,主要通过BeautifulSoup[3,4]和正则表达式来完成,具体实现代码如下:
  soup=BeautifulSoup(response.content,’lxml’)
  goods_list=soup.find(‘script’,text=re.compile(‘g_page_config’)).string.strip()
  pageConfig=re.search(‘g_page_config = (.*?);\n’,goods_list,re.S)
  pageConfig_dict=json.loads(pageConfig.group(1))
  pageGoods=pageConfig_dict[‘mods’][‘itemlist’][‘data’][‘auctions’]
  1.5  商品信息存儲
  由于爬虫采集到的数据具有复杂结构,这里使用MongoDB进行数据存储。在Python中通过开源模块pymongo可以很方便的实现与MongoDB数据库的交互,具体代码实现如下:
  client=pymongo.MongoClient(‘localhost’,27017)
  taobao=client[‘taobao’]
  goods=taobao[‘product’]
  def save_to_DB(result):
   try:
   if goods.insert_one(result):
   print(‘存储到数据库成功’,result)    except Exception:
   print(‘存儲到数据库失败’,result)
  2    关键问题及解决方法
  2.1  Robots协议
  对“淘宝网”的Robots文件分析可知,它对爬虫的拒绝机制主要在于User-agent的识别,使用真实的浏览器可以正常访问站点,而使用爬虫程序将会遭到拦截。本爬虫的解决方法是通过为请求添加头部信息,将爬虫伪装成浏览器[5],使其能够正常访问站点。
  2.2  IP限制
  短时间内使用同一IP账号对“淘宝网”进行高频次的访问,会导致IP账号被拉黑。本文解决方法是设置IP代理池,每一时间间隔都会从代理池中重新获取新的IP账号,从而避免同一IP在短时间内大量访问的情况。
  2.3  多进程并发采集
  多进程是相对单进程来讲的,单进程即同一时间段内处理器只处理一个问题,只有处理完这个问题后,才开始解决下一问题。为了提高商品信息的采集效率,充分利用多核CPU资源,爬虫程序使用Python提供的多进程包multiprocessing,对商品信息进行并发采集。
  3    结语
  本文基于Python的第三方库:Requests和BeautifulSoup,实现了一个易定制易拓展的主题爬虫,并以“淘宝网”为例进行商品信息的定向抓取。通过实验证明,该方法能有效降低数据采集的难度,可以帮助科研人员获取商品数据,具有一定的现实意义。但是,该方法距离成熟的爬虫还有一定的差距,在今后的工作中,考虑引入Scrapy框架[6],提高爬虫效率及其鲁棒性。
  [参考文献]
  [1]丁晟春,侯琳琳,王颖.基于电商数据的产品知识图谱构建研究[J].现代图书情报技术,2019(3):45-56.
  [2]常逢佳,李宗花,文静,等.基于Python的招聘数据爬虫设计与实现[J].软件导刊,2019(12):130-133.
  [3]温娅娜,袁梓梁.基于Python爬虫技术的网页解析与数据获取研究[J].现代信息科技,2020(1):12-13.
  [4]房瑾堂.基于网络爬虫的在线教育平台的设计与实现[D].北京:北京交通大学,2016.
  [5]余本国.基于python网络爬虫的浏览器伪装技术探讨[J].太原学院学报:自然科学版,2020(1):47-50.
  [6]杜鹏辉,仇继扬,彭书涛,等.基于Scrapy的网络爬虫的设计与实现[J].电子设计工程,2019(22):120-123.
  (编辑 何 琳)
  Method of collecting product information based on Python
  Luo Kuiyong
  (College of Information Engineering, Xinyang Agriculture and Forestry University, Xinyang 464000, China)
  Abstract:With the rapid development of e-commerce, more and more researchers are choosing data of product from e-commerce platforms as experimental data sets. In order to solve the problem of scientific researchers’ difficulty in obtaining commodity data, this article takes “Taobao” as the target website and proposes a Python-based method for collecting commodity information. First, analyze the required parameters of the product information interface and optimize the access link, and then use the third-party Requests and Beautiful Soup libraries provided by Python to download and clean the product information, and finally store the cleaned data in the Mongo DB database.
  Key words:e-commerce platform; Python; data collection
其他文献
摘 要:为了使医院输液智能化、方便化,文章设计了一套基于ZigBee的输液提醒远程监控系统减轻医护人员负担,由水位监测模块、ZigBee远程监控系统、K60单片机等组成。该系统用液位检测器监控输液进度,步进电机控制换液,输液工作完成后蜂鸣器自动发出警报,ZigBee通信模块实现远程监测的功能。该产品设计方案整体结构简单,体积小,易于操作,成本低,装置可重复使用无需每次消毒灭菌,操作方便,安全可靠。
摘 要:文章主要介绍了5G技术的特点,分析了5G技术在智慧安全环保管控平台的创新,描述了5G安全专网、MEC边缘云的设计以及5G+智慧安全在化工领域的作用,最后介绍了基于5G安全专网的智慧安全环保管控平台在某石化公司使用和取得的成效。  关键词:5G;安全;化工  1 智慧安全环保管控平台与5G技术结合的必然性  1.1 5G技术特点  第五代移动通信系统(5G),给人们的工作生活带来了巨大的变
摘 要:为了满足水泥生产中回转窑温度安全监控的工艺要求,文章设计了一种基于Labview的水泥回转窑红外测温监控系统,建立了具有红外扫描传感、虚拟仪器监控及网络云数据共享等功能的监控平台,采用多功能的Labview进行软件设计,经实践生产验证,该系统运行稳定,可靠性高,满足水泥窑红外测温监控的安全生产要求,与传统温控设备相比,提高了监控设备的智能化水平和企业的安全生产效率。  关键词:水泥回转窑;
文章讨论了雾霾天气下的图像清晰化技术,首先对图像去雾的背景和理论基础进行了介绍,然后分别利用全局直方图、局部直方图和Retinex增强处理雾天图像的清晰化技术进行实验。实验结果表明,基于Retinex增强处理的去雾方法针对性强,运行效率高,且易于融合其他图像增强算法。文章讨论的去雾技术对其他恶劣天气下的图像清晰化技术也起到促进作用。
摘 要:共享实训室管理是高职院校教学管理工作中的一项重要内容,高职院校共享实训室作为重要的教学场所,直接关系到教学的质量与效果。使用共享实训室智能管理系统,解决传统管理模式中教学实训室冲突、资源浪费、人力不足、维护不及时等问题,节约了教学资源,提高了共享实训室的设备使用率。  关键词:共享实训室;智能管理;系统分析  0 引言  近年来,各高职院校对校内共享实训室建设的投入不断加大,各高职院校的
摘 要:计算机网络技术已经在各行各业得到非常广泛的应用,有效地推动了各个行业的发展创新。在电子信息工程领域应用计算机网络技术,能够对该领域的发展起到推动作用。文章在介绍计算机网络技术与电子信息工程相关概述的基础上,对计算机网络技术在电子信息工程中的实践价值、实践思路以及实践层面进行了探讨。  关键词:电子信息工程;计算机网络技术;实践  0 引言  网络技术和计算机技术相融合,实现了人们信息交流
摘 要:由于包括毫米波频率,导致5G网络中的切换更具挑战性,基站(BS)部署更加密集。由于毫米波BS的占用空间较小,进一步增加了切换的数量,从而使切换管理成为一项更关键的任务。因为随着切换数量的增加,降低了服务质量(QoS)和体验质量(QoE),以及更高的信令开销。文章讨论了一种基于双深度强化学习(DDRL)的离线方案,以最小化毫米波网络中切换的频率,从而减轻不利的QoS。由于考虑到的5G环境的固
摘 要:医学高等职业院校的培养目标是培养医学相关的专业技能型人才,而计算机操作是当代大学生所不可或缺的一项技能。伴随着信息技术以及医院信息化的发展,医学高等职业院校“计算机公共基础”课程的改革显得更为迫切。文章主要提出了医学高等职业院校“计算机公共基础”课程教学中存在的问题,并就如何对课程进行改革进行了探讨。  关键词:医学高等职业院校;计算机基础;课程改革  0 引言  大学生“计算机公共基础
在传统的测量技术中,工作人员需要保持高度警惕性,并拥有成熟的工作经验,才可以确保测量工作的准确性。随着我国建筑工程行业的不断发展,建筑工程的数量越来越多,规模也越来越壮大,相关工作人员的工作任务更重,工作压力也更大。数字测量技术的应用,不仅可以提高测量精准度,还可以显著提升测量效率,推动我国建筑工程测量行业进入全新发展阶段。文章主要围绕数字测量技术内涵概述、其在建筑工程测量中的优势、在建筑工程测量
摘 要:多智能体系统由于在微电网需求响应管理、无人驾驶飞行器控制、无人车控制等诸多工程领域中的应用而得到了广泛的关注。其中,多智能体系统的一致性是实现工程应用的理论基础。文章主要给出了多智能体系统的基本概述,并分析了多智能体系统群集运动的一致性控制问题。  关键词:多智能体系统;群集运动;一致性控制  0 引言  大数据技术和信息处理技术的快速发展,随着人们对信息处理的安全性、响应性等技术要求提