采集网站内容(用Python采集一下北京新发地菜市场的价格行情(组图))

优采云 发布时间: 2022-01-16 08:18

  采集网站内容(用Python采集一下北京新发地菜市场的价格行情(组图))

  来源:你可以叫我兄弟

  作者:道菜

  前段时间,菜市场上出现了诡异的一幕:菜比肉还贵!

  以北京为例,猪肉价格已从年初的25元/斤逐渐下降到现在的10元/斤。

  

  猪肉价格走势

  有些蔬菜,比如莴苣,从年初的2.5元/斤,到年初的4.5元/斤,到时候可以8元/斤。他们很高;再比如年初的菠菜1.7元/斤现在是4元/斤,高的时候能达到7-8元/斤。

  

  油菜籽价格走势

  广大网友大呼:以前没钱吃肉,现在没钱吃菜!

  我们知道去年50元一斤猪肉(也离谱),现在可以买5斤,所以我们有如下对比图:

  

  那么,蔬菜价格的现状如何?全年的总体趋势是什么?今天就用Python采集来了解一下北京新发地菜市场的价格吧!

  01

  网页分析

  目标网站:北京新发地

  网址信息:

  

  我们通过翻页(下一页)查看后续数据,但是发现地址栏的URL没有变化,所以是动态加载的,然后老规矩:F12开发者模式—>网络—>XHR,然后翻页找到数据请求信息如下:

  

  最后我们确认请求接口地址、请求方法和信息如下:

  请求类型:post

  网址 = r'#39;

  # 请求参数如下,其中page为页码

  表单数据={

  “限制”:20,

  '当前页面,

  'pubDateStartTime': '2021/01/01',

  'pubDateEndTime': '2021/10/30',

  'prodPcatid':'',

  'prodCatid':'',

  '产品名称':'',

  }

  

  确认以上信息后,我们就可以简单的为data采集写代码了!

  02

  数据采集

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

  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万多条数据如下:

  

  数据预览

  以上就是本次的全部内容。因为菜的种类很多,这里就不一一介绍了,大家自行研究。

  福利

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线