python获取新发地菜价信息

北京市丰台区新发地是一个商品批发市场品牌称号。北京有两家市场使用了该称号,一是北京新发地农产品中心批发市场。二是北京新发地国际水产城。
在这里插入图片描述

我们查看网页源代码发现,其表格中的数据来自后台的post请求。
在这里插入图片描述
遂爬取之,代码如下:

import requests
import csv

url = "http://www.xinfadi.com.cn/getPriceData.html"
dic = {
    "limit": "",
    "current": "",
    "pubDateStartTime": "",
    "pubDateEndTime": "",
    "prodPcatid": "",
    "prodCatid": "",
    "prodName": "",
}
r1 = requests.post(url, data=dic)
resp = r1.json()
print(resp)
all_count = int(resp["count"])
limit = int(resp["limit"])
all_page_number = int(all_count / limit)

with open("新发地菜价.csv", mode="a+", newline='') as f:
    csvwriter = csv.writer(f)

    for i in range(1, all_page_number):
        dic1 = {
            "limit": limit,
            "current": i,
            "pubDateStartTime": "",
            "pubDateEndTime": "",
            "prodPcatid": "",
            "prodCatid": "",
            "prodName": "",
        }
        r1 = requests.post(url, data=dic)
        list = resp["list"]
        count = list
        for iter in list:
            prodName = iter["prodName"]
            avgPrice = iter["avgPrice"]
            highPrice = iter["highPrice"]
            lowPrice = iter["lowPrice"]
            place = iter["place"]
            prodCat = iter["prodCat"]
            pubDate = iter["pubDate"]
            unitInfo = iter["unitInfo"]
            csvwriter.writerow([prodName, avgPrice, highPrice, lowPrice, place, prodCat, pubDate, unitInfo])
print("Over")

因为这个数据量比较大 同步爬取的效率会比较低,大概会花费几十分钟时间。结果如下:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值