Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >菜比肉贵?用Python采集蔬菜与肉类商品历史价格,带你了解了解~

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

作者头像
可以叫我才哥
发布于 2021-11-09 07:39:11
发布于 2021-11-09 07:39:11
35700
代码可运行
举报
文章被收录于专栏:可以叫我才哥可以叫我才哥
运行总次数:0
代码可运行

大家好,我是才哥。

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

以北京为例,像猪肉的价格基本上从年初的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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
url = 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格式,比较好处理,我们直接上代码(完整代码)。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import pandas as pd
from tqdm import tqdm

headers = {
    "Accept-Encoding": "Gzip", 
    "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",
    }
dfList = []
url = r'http://www.xinfadi.com.cn/getPriceData.html'
for page in tqdm(range(1,5373)):
    FormData={
        'limit': 20,
        'current': page,
        'pubDateStartTime': '2021/01/01',
        'pubDateEndTime': '2021/10/30',
        'prodPcatid':'',
        'prodCatid':'',
        'prodName':'',
        }
    
    r = requests.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万多条数据如下:

数据预览
数据预览

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 可以叫我才哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
四则运算作业
代码: # -*- coding: utf-8 -*- import random from fractions import Fraction from envs.py3k.Lib.symbol import except_clause print ("小学四则运算测试:(结果保留1位有效数字)") ops = ['+', '-', '*', '/'] # 锟斤拷锟斤拷锟� ans = "" # 锟矫伙拷锟截达拷 num = 1 # 锟斤拷锟� rightnum = 0 t = 0 while
py3study
2020/01/17
4650
没钱没技术的草根,如何创业?
企鹅号小编
2017/12/27
7140
没钱没技术的草根,如何创业?
Python - 面向对象编程 - 小实战(2)
需求 小明和小美都爱跑步 小明体重 75 公斤 小美体重 45 公斤 每次跑步会减肥 0.5 公斤 每次吃东西体重增加 1 公斤 需求分析 小明、小美都是一个具体的对象,他们都是人,所以应该抽象成人类 小明、小美是具体的对象的姓名,而体重是另一个属性,所以有两个属性 跑步、吃东西都是一种行为,所以也有两个方法 类图 实现代码 class Person: # 构造方法 def __init__(self, name, weight): # 两个实例属性 se
小菠萝测试笔记
2021/09/07
5190
19岁创业少年的成功秘诀,坚持!
新生帝【希望自己能够在(新)的(生)活领域中称(帝),拥有一席之地!】 新生帝认为自己的团队还未准备好,不想过多宣传,因此,本文不提及他的公司和真实姓名,只说他的创业经历,希望给创业者学习和借鉴。 导语: 新生帝今年22岁,19岁大学毕业时,一个人租了学校附近的一间厕所大小的地下仓库开始创业。白天发传单,晚上进修编程,2个月后,才接到第一笔订单,给一家学校做网站。 创业2年半的时间中,他经历过没钱被房东扫地出门的艰辛,两次员工出走,只剩他一人的尴尬。现在,他带着一支90后团队,在广东中山为企业提供全平台服
BestSDK
2018/02/27
1.1K0
19岁创业少年的成功秘诀,坚持!
开发软件有多贵
 有个朋友的朋友想做一个公益的事。因为出资的都是教育水平较高的精英人士,所以对项目的监控透明度要求比较高。于是这个朋友的朋友就想了,信息时代嘛,IT 工具不是可以促进交流提升效率么?于是他对我说:我们
用户1289394
2018/02/28
1.2K0
开发软件有多贵
快递集体出海抢肉吃
7月5日,在马来西亚吉隆坡做小生意的徐女士收到了一批来自中国义乌的玩具产品,她感到非常惊喜:“从国内的供应商发货,到马来西亚这边的百世快递送货上门,只用了3天时间,而且这批10公斤的货,快递费只花了不到平时的三分之一,而且还是在疫情期间航班费用上涨的情况下。”
刘旷
2020/07/08
4180
你的电脑了为什么存在"锟斤拷"?
在计算机的世界里,文本处理是一项至关重要的任务。然而,我们常常会遇到一些令人头疼的问题,其中 “锟斤拷” 现象就是典型代表。它的出现不仅破坏了文本的可读性,还可能影响到整个数据处理流程的准确性。
炒香菇的书呆子
2024/11/19
2590
回锅肉
昨天第一次开原创评论留言,想不到这么多人捧场,本来想把各位的留言全部都放出来的,但是没想到,居然留言只能放出100条!所以,昨天没看见自己留言的朋友,大概知道自己的名次了~ 在前面的菜单中,
用户1907613
2018/07/20
4870
1 分钟带你认识从 "�" 到 "锟斤拷"
在前不久石头哥的这篇文章中 —— 你可能也会掉进这个简单的 String 的坑,讲述了因字符编码问题而连续踩坑的经历,文中有一个神奇的字符 “�”。
程序猿石头
2021/01/28
1.9K0
到底是C还是C++?关于数据/程序员的22则冷笑话
1、浙大软件学院,为了吸引更多的优秀人才报考,发布了一系列的宣传照,其中有一张引起了很多人的激烈争议。一些人说是C,另一些人非说是C++。。。 2、别人家的爸爸: 一位高考生的爸爸,通过#数据挖掘#和
CSDN技术头条
2018/02/09
1.1K0
到底是C还是C++?关于数据/程序员的22则冷笑话
海盗分赃难题
船上有十个海盗,有一天,他们抢到了一箱100斤的黄金,打算分赃(以斤为最小单位)。十个海盗从高到低分为10个等级,分配权在最高等级的海盗手里。他可以任意分配每个海盗的所得,但必须取得半数或半数以上的海盗(包括自己在内)的支持,否则他将被同伴处死。处死之后分配权将转移到下一个等级最高的海盗手里,当然,他也将面临同样艰难的选择。
java达人
2020/12/16
4840
海盗分赃难题
java8新特性lambda
Consumer(消费者) 消费者的Lambda表达式为(e)->{logger.info(e)}
用户9347382
2022/02/28
3710
编程到底难在哪里?
测试发现一个问题:如果水果店0和水果店1都有红富士苹果并且价格都低于10元/斤,而且水果店1的价格比水果店0更低,那么我希望买水果店1的苹果,但我设计的流程会让我买水果店0的苹果。
顶级程序员
2018/07/23
2320
神回答:编程到底难在哪里?
今天在浏览知乎的时候,看到了一个问题:编程到底难在哪里?看到一个非常有意思的回答,这个回答虽然并没有说到编程到底难在哪里的本质,但是却清清楚楚说明了程序员在编程的时候的思维逻辑和思考的整个过程。这个回答简直是通俗易懂,非常形象的表述了程序员在编程时需要考虑的复杂逻辑。
非著名程序员
2018/09/29
9390
神回答:编程到底难在哪里?
「Python」面向对象封装案例1——小夏爱跑步、案例扩展
封装是面向对象编程的一大特性,当我们面向对象编程的时候第一步就是先做需求分析然后根据明确的职责将不同的属性和方法封装到一个又一个抽象的类中。之所以说是抽象的类,因为在开发程序中类是不能直接使用的,当定义好一个类之后,在外界也就是类的代码外部来使用类创建对象,然后再让这个对象去调用我们封装在类中的各个方法。
python自学网
2022/09/03
2820
「Python」面向对象封装案例1——小夏爱跑步、案例扩展
计重转换(期末模拟)
Convert能够把输入的克数转成中国计重,例如1234克转成2斤4两6钱4克,并且把数值放入斤、两、钱、克四个属性中
叶茂林
2023/07/30
1520
Python技术巧妙破解Google计算题
开头先讲一下自己的亲身经历,05年的时候,也就是12年前,我去T公司面试,当时T公司在这个城市非常有名,有很多高手(号称小微软).我当时也是抱着初生牛犊不怕虎,想去会一会.在通过第一轮的笔试(当时考算法,程序,还有IQ)和初级面试后,进入第二轮,来了一个中国台湾技术经理,问了一些问题之后出了一道题,要求3分钟给出答案,这道题就是今天下面要讲的~~这3分钟我当时是又惊又囧,10多年过去了我现在依然记忆犹新(也许我以后会写一篇"10年了外企面试的那些往事") 今天先说正题,没有想到十多年后,我无意
企鹅号小编
2018/02/28
1.2K0
Python技术巧妙破解Google计算题
文科生带你学Python|分支VS循环
分支&循环是程序结构控制的核心,不管学习哪种编程语言,程序的结构控制都是非常重要的。
做数据的二号姬
2020/07/14
6160
逻辑测试题(161)答案
4个特点分到3个人身上,而且每个特点都刚好两人具备,而且每人最多三个特点,那么只能是:其中两人具备3个特点,另一人具备2个特点,即每人至少2个特点,最多3个特点。
用户5021203
2020/09/29
8290
逻辑测试题(161)答案
什么是客户终生价值(CLV)以及如何提升CLV?
客户终生价值(CLV)的概念不算难理解,就是客户在与我们发生关系的整个生命周期给企业带来的价值总和。如果还是有些似懂非懂的话那就用下面的例子来说明:
臭豆腐
2019/04/16
3.3K0
什么是客户终生价值(CLV)以及如何提升CLV?
相关推荐
四则运算作业
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验