菜比肉贵?用 Python 采集蔬菜与肉类商品历史价格,带你了解了解~

开发 后端
前段时间,菜市场出现了一个奇特的现场:菜比肉贵!以北京为例,像猪肉的价格基本上从年初的25块/斤逐步下降到现在的10块/斤。

[[432406]]

大家好,我是才哥。

前段时间,菜市场出现了一个奇特的现场:菜比肉贵!

以北京为例,像猪肉的价格基本上从年初的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开发者模式—>Network—>XHR,然后翻页可以找到数据请求信息如下:

最终,我们确认请求接口地址及请求方式与信息如下:

请求类型:post

  1. url = r'http://www.xinfadi.com.cn/getPriceData.html' 
  2. # 请求参数如下,其中page为页码 
  3. FormData={ 
  4.         'limit': 20, 
  5.         'current': page, 
  6.         'pubDateStartTime''2021/01/01'
  7.         'pubDateEndTime''2021/10/30'
  8.         'prodPcatid':''
  9.         'prodCatid':''
  10.         'prodName':''
  11.         } 

确定以上信息后,我们就可以简单的写代码进行数据采集了!

2. 数据采集

由于请求到的数据是json格式,比较好处理,我们直接上代码(完整代码)。

如果对代码不是很了解,可以加笔者好友或者加咱们交流群讨论!

  1. import requests 
  2. import pandas as pd 
  3. from tqdm import tqdm 
  4.  
  5. headers = { 
  6.     "Accept-Encoding""Gzip",  
  7.     "User-Agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
  8.     } 
  9. dfList = [] 
  10. url = r'http://www.xinfadi.com.cn/getPriceData.html' 
  11. for page in tqdm(range(1,5373)): 
  12.     FormData={ 
  13.         'limit': 20, 
  14.         'current': page, 
  15.         'pubDateStartTime''2021/01/01'
  16.         'pubDateEndTime''2021/10/30'
  17.         'prodPcatid':''
  18.         'prodCatid':''
  19.         'prodName':''
  20.         } 
  21.      
  22.     r = requests.post(url, data=FormData, headers=headers) 
  23.     data = r.json() 
  24.     dataList = data['list'
  25.     df = pd.DataFrame(dataList) 
  26.     dfList.append(df) 
  27.      
  28. df = pd.concat(dfList) 
  29. df.to_excel(r'菜品历史价格行情.xlsx',index=None) 

采集进度

可以看到,其实该网站并没有反爬,但是我们用最简单的这种采集方式花了2小时23分钟,属实有点久。

那么怎么可以加速呢?进程、线程与携程等方式可以加速,关于这方面的知识与应用我们会在后续进行专题介绍哈,这里先预告一下。

最终,我们采集到10万多条数据如下:

数据预览

 

以上就是本次全部内容,由于菜品类型较多,这里不做展开处理,大家可以自行下载研究哈。

 

责任编辑:武晓燕 来源: 可以叫我才哥
相关推荐

2023-11-06 13:08:45

2022-10-24 08:45:23

数据库应用场景区块链

2018-11-13 09:56:52

TomcatServerWeb应用服务器

2022-08-29 10:57:09

语音识苹果频率

2023-11-29 13:51:00

2021-06-07 07:59:37

MySQL 全局锁线程

2023-11-02 16:51:07

Python代码

2024-02-19 08:40:22

2023-12-14 12:55:41

Pythondel语句

2019-03-26 10:50:22

Python面向对象编程语言

2018-02-05 10:07:33

操作系统LinuxUnix

2022-09-26 11:30:40

MQTT协议客户端协议

2019-09-27 09:40:06

ElvishShellLinux

2010-07-05 16:20:32

NetBEUI协议

2023-11-06 17:37:17

技术架构任务队列

2019-10-23 11:24:44

LinuxLinux目录Linux系统

2020-12-31 12:16:49

SAP云计算SAP产品

2021-02-03 16:22:43

新基建SAP

2010-09-02 16:59:35

资源预留协议

2021-05-31 14:22:56

物联网物联网安全
点赞
收藏

51CTO技术栈公众号