网站首页  词典首页

请输入您要查询的论文:

 

标题 农产品大数据的抓取和分析方法探索
范文

    [摘要]互联网上有着十分丰富的农产品信息,用Python编写网络爬虫进行网上农产品的数据抓取,抓取的数据存储进文件或者数据库中,利用Python的第三方库进行数据处理和分析,最后再用Matlabplot库输出可视化图表,给出分析结论。这是一种简单易行、代价低廉的大数据实现方法,该方法在中国广大的农村具有普遍实现的意义。

    [关键词]大数据;爬虫;Python;处理分析

    [中图分类号]TP311[文献标识码] A

    1? ? 概述

    大数据技术飞速发展,各行各业都努力引入这些先进技术,从互联网上获取大数据,进行处理和分析,利用分析结果提高生产力或者辅助决策等。因为中国广大的农村交通不便、信息闭塞、设备落后,也没有充分的技术支持和人才储备,所以虽然在互联网上有着丰富的农产品信息资源,但要成为有用的数据,却面临着数据抓取和处理分析的难题。本文介绍一种设备要求低且容易实现的方法,即利用Python语言构建网络爬虫从互联网上获取数据并处理分析,非常适合广大农村的农产品大数据获取和处理分析。

    2? ? 利用Python网络爬虫抓取互联网上的农产品数据

    2.1? ? Python爬虫及其基础库

    网络爬虫是按照一定的规则自动刘晓刚:农产品大数据的抓取和分析方法探索抓取万维网信息的程序或者脚本。这个程序可以用多种语言编写,用Python编写更是简单快捷且功能强大。用户获取网络数据的方式一般是浏览器提交请求,从服务器下载网页代码,解析成页面;同理,爬虫的基本流程是模拟浏览器发送请求去获取网页代码,然后解析并提取有用的数据,存放于数据库或文件中。具体过程是爬虫使用http库向目标站点发起请求,即发送一个Request,Request包含请求头、请求体等。如果服务器能正常响应,则会得到一个回应Response,Response包含html、json、图片、视频等。Python程序接着解析html数据,利用正则表达式、第三方解析库如Beautifulsoup,Lxml,解析json数据、二进制数据等,以文本或二进制格式写入到文件(如CSV、Excel),或者保存数据到数据库(如MySQL、Mongdb、Redis)中。

    为了防止被服务器当作非法用户主机拒绝访问,爬虫程序都会加上请求头。请求头中包含User-Agent和Cookies、Referrer等信息。User-Agent是一个特殊字符串,使得服务器能够识别客户使用的浏览器及版本等参数,Cookie用来保存访客以前的登录信息,Referrer说明访问源从哪里来,一些大型网站会通过Referrer 做防盗链策略。

    爬虫程序通过各种库来实现很多功能。其中最基础的库有三个,其一是Requests库,它的作用是请求网站获取网页数据。其二是BeautifulSoup库,它把Requests库请求到的网页解析为容易识别的Soup文档,以便过滤和提取数据。其三是Lxml库,它的主要功能也是解析网页源代码,但使用C语言编写,速度比BeautifulSoup库更快。

    爬虫程序用BeatifulSoup库的Lxml解析器来解析指定的html文档,结果存放到变量中。然后通过Beautifulsoup之标签选择器功能,用select()方法传入字符串参数,就能返回需要的選择结果。如选择所有title标签的代码就是两句,第一句是soup = BeautifulSoup(html,lxml);第二句是soup.select(“title”),选择的结果以列表形式返回;同理,选择所有p标签中的第三个标签的代码是:soup.select(“p:nth-of-type(3)”) ;这种网页解析方式简单方便,容易理解。

    2.2? ? 利用爬虫抓取互联网农产品信息

    获取互联网上的农产品数据,建议分三步进行。第一步用Chrome浏览器打开一个销售农产品的网页,在一个售价上右击鼠标选择“检查”,从而获取到元素定位;在自动跳出的右边的检查区上选择这个售价,右击鼠标选择“copy”下的“copy selector”,获得选择器代码,即售价元素定位字符串“#page_list > ul > li:nth-child(1) > div.result_btm> span.result_price > i”。第二步,从Chrome中提取User-Agent。在Chrome菜单的开发者工具中选中Network选项中指定的网站名,在其中的Headers选项卡下面的Request Header中复制User-Agent。第三步,在Python的IDE(如Spyder或PyCharm)中新建Python文件,加入User-Agent,编写其它代码并运行,运行结果输出一个农产品价格。如果需要获取这个页面上所有的农产品价格,只需简单地改写代码利用循环输出即可,将selector改为“#page_list > ul > li > div.result_btm > span.result_price > i”,即将“li”后面的限定符去掉,表示要抓取所有的“li”,从而获取所有“li”中的农产品价格。

    2.3? ? 利用爬虫抓取多个农产品的信息

    利用爬虫抓取农产品中包括价格在内的多个信息,必须定义多页面爬虫。首先是手动翻页并观察各网页的URL构成特点,构造出所有页面的URL存入列表中。次之要根据URL列表依次循环取出具体的URL,根据上面的抓取单个信息爬虫的原理定义爬虫,并添加其它信息的选择器,增加语句用这些选择器来抓取多个数据,并循环存储抓取的数据。

    访问多个出售农产品的页面,再到每个页面中寻找农产品信息抓取信息数据时,可能需要跨越多级页面,可以用多级循环,定义多个方法完成。为了防止频繁访问同一个网站带来的限制,建议爬虫运行一段时间休息几秒,用time库的sleep方法实现。

    3? ? 利用Python对抓取的数据进行分析

    从网页抓到数据后并不能直接使用,必须经过数据处理,去除重复值、空值等,保留有用的信息,才能进行分析。Python可以做多种的数据处理,如数据清洗,处理缺失数据以及清除无意义的信息,用drop_duplicates方法處理去掉重复值,也可以用dropna方法删除数据为空所对应的行,还可以用fillna方法用其他数值替代NaN空值。用slice方法可以进行字段抽取,抽出某列上指定位置的数据做成新的列;还可以进行随机抽样、排名索引、数据合并、数据计算、数据分组、日期处理、数据分析、分组分析、分布分析、交叉分析、结构分析、相关分析等高级分析功能,这些功能仅需几行代码即可实现。

    4? ? 利用Python对农产品数据进行可视化分析

    处理分析的结果最后需要制作成效果明显的可视化图形。虽然Excel也有这方面的功能,而且操作简单,提供的图形样式也满足大部分需要。但是Excel的性能处理不了大数据,其它的大数据工具要么操作复杂要么设备要求高端,而使用Python的第三方库如Matplotlib或Seaborn就能轻易地完成这个工作。

    从Matplotlib库中中导入pyplot绘图模块,简称为plt。pyplot模块是Matplotlib最核心的模块,几乎所有样式的2D图形都是通过该模块绘制出来的。plt.plot是pyplot模块下面的直线绘制方法,用它可以快速地画出需要的折线,用plt.show方法可以将图形显示出来。同理用matplotlib.pyplot.bar方法可以方便地实现柱形图,仅把plt.plot方法改成plt.bar即可;用matplotlib.pyplot.pie方法可以画出常用的饼状图等等……只需要几行简单的代码和基本的编程知识,就可以得到需要的各种样式的分析图表。

    [参考文献]

    [1] 姜杉彪,黄凯林,卢昱江,等.基于Python的专业网络爬虫的设计与实现[J]. 企业科技与发展,2016(08):17-19.

    [2] 谢克武.大数据环境下基于python的网络爬虫技术[J].电子制作,2017(09):44-45.

    [3] 姚建盛,李淑梅. Python在科学计算中的应用[J].数字技术与应用,2016(11):76.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 7:50:02