抓取钢铁价格后计算季度平均价格

市场钢材原材料价格浮动超过一定比例,就会调整下一季度的原材料价格。
每次都要去网上下载数据太麻烦,于是乎学了半天的python写了一个小脚本。

技术点:

  1. Python
  2. JSON 将字段格式转换成JSON字符串
  3. Requests 获取网站返回的数据
  4. Pandas 简单计算一下数据
  5. datetime 获取时间

第一步:"我的钢铁"网的openAPI下载数据

下载的时候需要选择钢材的型号、厚度、地区、所需数据的时间跨度。
这边只有时间跨度是动态的,设为当天往前推365天。

# -*- coding: utf-8 -*-
# @Time : 5/24/2021 23:14 PM
# @Author : ni2
# @Software : PyCharm
# @Filename : GetMysteelPriceimport json
import random
import requests
import datetime# 查询钢材价格的程序
def findSteelPrice(startDate,endDate):# 生成随机的五位数number = random.randint(2, 99999)# 生成日期today = datetime.date.today()# 创建文件,并输入初始值with open(r'D:\pythonProject\pythonProject\Raw_Material_Price\Material_Price\Steel_Price_%s.csv' % today, 'a', encoding='utf-8') as f:f.write("{},{}\n".format('date', 'value'))f.close()# 爬取的网站url = "https://openapi.mysteel.com/zs/newprice/getChartMultiCity.ms"# 请求头header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68'}# 请求参数parmas = {'callback':'callback','catalog':'%E7%83%AD%E8%BD%A7%E6%9D%BF%E5%8D%B7_:_%E7%83%AD%E8%BD%A7%E6%9D%BF%E5%8D%B7','city':'%E4%B8%8A%E6%B5%B7','spec':'3.0_:__3.0%E7%83%AD%E8%BD%A7%E6%9D%BF%E5%8D%B7','startTime':startDate,'endTime':endDate,'_':'16218697%s' % number}# 接收返回参数response = requests.get(url=url,headers=header,params=parmas)# 由于返回的是元组,所以要去一些内容# json字符串字典格式 //jsom.dumps 字典格式转json字符串result = response.textresult = result.replace('callback({"data":[{"lineName":"上海",','{').replace('],"title":"热轧板卷 3.0 走势图"})','')result = json.loads(result)# print(result)for i in result['dateValueMap']:date = i['date']value = i['value']# 保存数据在文件中with open(r'D:\pythonProject\pythonProject\Raw_Material_Price\Material_Price\Steel_Price_%s.csv' % today, 'a', encoding='utf-8') as f:f.write("{},{}\n".format(date, value))f.close()print("File <Steel_Price_%s.csv> Download Successful" % today)

第二步:读取下载好的文件,分析每季度价格的浮动

这边计算公式为: ( x - y ) / x
x ⇒ 上三个月的平均价
y ⇒ 上上三个月的平均价

# -*- coding: utf-8 -*-
# @Time : 5/27/2021 12:10 PM
# @Author : ni2
# @Software : PyCharm
import datetime
import pandas as pd
import GetMysteelPrice as gmp# 处理钢材数据
def pandasSteelPrice(startDate, endDate):# 下载钢材材数据gmp.findSteelPrice(startDate=startDate, endDate=endDate)# 生成日期today = datetime.date.today()# 1. 读取下载好的文件 | 日期列设置为index | 解析index为日期格式table = pd.read_csv('D:\pythonProject\pythonProject\Raw_Material_Price\Material_Price\Steel_Price_%s.csv' % today,index_col=0, parse_dates=True)# 2. 编辑数据 | 按照季度计算平均值ptable = table.resample('3M').mean()newTable = pd.DataFrame(ptable)# rate空列表rate = [];# 计算百分比for i in range(len(newTable)):if i < (len(newTable) - 1):rate.append((newTable['value'][i + 1] - newTable['value'][i]) / newTable['value'][i + 1])  # (X-Y)/X# 补全数据rate.append('-')# 增加一列 ratenewTable.insert(1, 'rate', rate)# 3. 输出数据print("Steel AVG Price For Each 3Month:")print(newTable)# 结束日期
endDate = datetime.datetime.today().strftime("%Y-%m-%d")
# endDate = "2021-07-31"# 开始日期
startDate = (datetime.datetime.today() - datetime.timedelta(days=365)).strftime("%Y-%m-%d")
# startDate = "2021-01-01"# 运行
print("*******************************************************")
pandasSteelPrice(startDate=startDate, endDate=endDate)
print("*******************************************************")

引用:

mysteel 开源数据

https://openapi.mysteel.com

Python 抓取钢铁价格 ==> 计算季度平均价格相关推荐

  1. 运用Python抓取二手房价格与信息的两种常用方法

    最近房地产市场进一步收紧,多地地方政府出台各种收紧政策,以保证房地产健康发展,因此云朵君就想到运用Python网络爬虫,抓取部分房产信息,了解下最近房地产的情况. 接下来以房天下二手房信息,以获取某个 ...

  2. 运用Python爬取二手房价格与信息的两种常用方法

    最近房地产市场进一步收紧,多地地方政府出台各种收紧政策,以保证房地产健康发展,因此云朵君就想到运用Python网络爬虫,抓取部分房产信息,了解下最近房地产的情况. 接下来以房天下二手房信息,以获取某个 ...

  3. python数据分析实例:python抓取课工厂网站数据和分析

    在线教育网站学习,是很多人利于闲余时间进行充电的一种选择.本篇文章利用python抓取在线教育网站课工场课程页面的数据,进行简要分析. 通过使用requests库对课工场课程列表页进行抓取. 通过Be ...

  4. pythonallowpos_利用Python抓取并分析京东商品评论数据

    2.1 内容简介 本章主要介绍如何利用Python抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色等颜色, 70B到90D ...

  5. 使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)

    本篇文章是使用python抓取数据的第一篇,使用requests+BeautifulSoup的方法对页面进行抓取和数据提取.通过使用requests库对链家网二手房列表页进行抓取,通过Beautifu ...

  6. python 抓数_使用python抓取并分析数据

    本篇文章是使用python抓取数据的第一篇,使用requests+BeautifulSoup的方法对页面进行抓取和数据提取.通过使用requests库对链家网二手房列表页进行抓取,通过Beautifu ...

  7. python爬取学籍_仝卓学籍造假微博道歉,用Python抓取微博的评论看看群众都说什么...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不 ...

  8. python 抓取电脑界面_学会了Python,我的人生跟开挂一样

    当代职场年轻人的抑郁,有千百种. 一边是加不完的班.完不成的KPI.大把掉落的头发,一边是今年严峻的就业形势,职场人面临的工作压力可想而知. 忙碌的生活不仅磋磨了锐气,也让人觉得,自己仿佛永远没有真正 ...

  9. python新闻评论分析_使用 python 抓取并分析京东商品评论数据

    本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D ...

  10. aws python sns_手把手教你用Python抓取AWS的日志(CloudTrail)数据

    原标题:手把手教你用Python抓取AWS的日志(CloudTrail)数据 作者: Gang TAO 大数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的Cl ...

最新文章

  1. Lucene.Net 2.3.1开发介绍 —— 三、索引(六)
  2. Spring常用工具类
  3. python3.6.0安装教程-Python 3.6.0下载及安装教程
  4. 找不到网卡eth0的解决方法
  5. YUM更换源(1)--yum找不到安装包 2013-01-18 20:08 8687人阅读 评论(1) 收藏 举报 分类: linux(70) 公司提供的CentOS VM中,/etc/yum.r
  6. [八]RabbitMQ-客户端源码之ChannelN
  7. android 头像球_Android一行代码实现圆形头像
  8. 操作系统之文件管理:2、文件的逻辑结构(有结构文件、无结构文件、顺序文件、索引文件、索引顺序文件)
  9. 你不知道的 Web 性能优化 | 原力计划
  10. paip.提升用户体验---验证码识别与盲人
  11. ICEM划分网格实例——六角形螺栓
  12. 基于区块链的融合通信初探(一)
  13. 【cocos2dx】记录解决csb创建font字体造成的内存泄漏问题
  14. 使用Python进行OpenCV颜色检测和过滤
  15. 3.知识图谱业务落地技术推荐之国内知识图谱平台汇总(竞品)[阿里、腾讯、华为等】
  16. POI导出Excel工具类(简单看完就会)
  17. Joystick Shield 连接 nRF24L01
  18. python爬取网页json数据_python爬取json数据库
  19. 优质神器!推荐7个小众好用的软件,也许你还没用过
  20. 感觉各种知道,问答,百科的真实性和可信性都被网络营销给搞坏了

热门文章

  1. “同芯至远 共叙未来”2021年simcom芯讯通代理商大会
  2. word 2016 页码从任意页开始
  3. 用PS快速给图片添加逼真彩虹效果
  4. 银行客户流失分析预测
  5. sql 查看某个日期字段对应某天的数据
  6. 制作Ubuntu系统的USB启动盘
  7. linux 笔记本摄像头,Ubuntu 7.10 下屏蔽笔记本摄像头的方法
  8. python爬虫十九:mongodb的使用
  9. adb 命令行导出Android APP数据库.db文件
  10. Intellij IDEA创建Scala项目