五一假期闲来无事,做了一个爬虫,试着将一年中猪肉价格爬取出来,看看一年中的猪肉价格。我们要爬取的网站是这个:
图表里的数据封存在json中,具体代码如下:
import pandas as pd import requestsimport jsonimport datetimeurl='https://zhujia.zhuwang.cc/api/chartData?areaId=-1&aa=1587823942071'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'}response = requests.get(url,headers=headers)json_text=response.json()#计算出所有的日期序列enddate=datetime.datetime.now()delta= datetime.timedelta(days=365)startdate=(enddate-delta)timeindex=pd.date_range(startdate.strftime('%Y-%m-%d'),enddate.strftime('%Y-%m-%d'))# print(timeindex)#将json中的元素换成字典形式并转换成DataFrame格式dic={}dic['pigprice']=json_text['pigprice']dic['pig_in']=json_text['pig_in']dic['pig_local']=json_text['pig_local']dic['maizeprice']=json_text['maizeprice']dic['pork']=json_text['pork']data=pd.DataFrame(dic)#生成符合条件的列data并保存到csv文件中。data['time']=timeindexdata.to_csv('生猪价格.csv',index=0)
这样我们就保存了一年中生猪价格、玉米、豆粕、时间序列等,生成的CSV文件如下:
CSV文件中就保存了一年的价格,明天我们用matplotlib将其画出来。