当前位置: 首页 > 科技观察

蔬菜比肉贵?用Python收集蔬菜肉类商品的历史价格,给大家科普一下~

时间:2023-03-21 01:02:44 科技观察

大家好,我是菜哥。前段时间,菜市场出现了奇异的一幕:菜比肉还贵!以北京为例,猪肉价格基本从年初的25元/斤降到现在的10元/斤。猪肉和生菜等部分蔬菜的价格走势,从年初的2.5元/斤,到现在的4.5元/斤,高时8元/斤;再比如菠菜,从年初的1.7元/斤涨到现在的4元/斤,高的时候可以达到7-8元/斤。生菜生菜价格走势广大网友直呼:以前没钱吃肉,现在没钱吃菜!我们知道前年50元一斤的猪肉(也是离谱),现在可以买5斤了,于是就有了下面这张对比图:以前没钱吃肉,现在有没钱吃菜。那么,蔬菜价格的现状如何呢?全年的总趋势是什么?今天,我们就用Python来采集北京新发地菜市场的行情,一起来了解一下吧!1.网页分析目标网站:北京新发地网站信息:http://www.xinfadi.com.cn/priceDetail.html我们翻页(下一页)查看了后续数据,但是发现地址栏url没有变,所以是动态加载的,所以老规矩:F12开发者模式—>网络—>XHR,然后翻页找到数据请求信息如下:最后我们确认请求接口地址,request方法和信息如下:请求类型:posturl=r'http://www.xinfadi.com.cn/getPriceData.html'#请求参数如下,其中page为页码FormData={'limit':20、'current':page,'pubDateStartTime':'2021/01/01','pubDateEndTime':'2021/10/30','prodPcatid':'','prodCatid':'','prodName':'',}确认以上信息后,我们就可以简单的编写数据采集代码了!2.数据采集由于请求的数据是json格式,比较容易处理,所以我们直接上传代码(完整代码)。如果对代码不太了解,可以加作者好友或者加入我们的交流群一起讨论!importrequestsimportpandasaspfromtqdmimporttqdmheaders={"Accept-Encoding":"Gzip","User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/83.0.4103.97Safari/537.36",}dfList=[]url=r'http://www.xinfadi.com.cn/getPriceData.html'forpageintqdm(range(1,5373)):FormData={'limit':20,'current':page,'pubDateStartTime':'2021/01/01','pubDateEndTime':'2021/10/30','prodPcatid':'','prodCatid':'','prodName':'',}r=请求。post(url,data=FormData,headers=headers)data=r.json()dataList=data['list']df=pd.DataFrame(dataList)dfList.append(df)df=pd.concat(dfList)df.to_excel(r'菜品历史价格.xlsx',index=None)可以看到收藏进度。其实网站并没有反向爬取,但是用最简单的采集方式我们用了2小时23分钟,有点长。那么如何加速呢?进程、线程、携程都可以加速。我们会在后续介绍这方面的知识和应用。这是一个预览。最终,我们收集了10万多条数据如下:数据预览以上就是本次的全部内容。由于菜品种类繁多,这里就不展开处理了。大家可以自行下载学习。