# http://www.xinfadi.com.cn/index.html

# 接口 http://www.xinfadi.com.cn/getPriceData.html

# 想提取单个页面的数据

# 上线程池,多页面同时抓取


import requests

from concurrent.futures import ThreadPoolExecutor

import csv

import time


def get_one_page(current):

    data = {"limit":20,"current":current}

    r = requests.post("http://www.xinfadi.com.cn/getPriceData.html",data=data)

    list = r.json()["list"]

    write_csv(list)



def write_csv(list):

    # 写数据

    with open("蔬菜价格.csv","a",encoding="utf-8",newline="") as f:

        w = csv.writer(f)

        for v in list:

            w.writerow((v["prodName"],v["lowPrice"],v["avgPrice"],v["highPrice"],v["place"],v["unitInfo"],v["pubDate"]))

            print(v["prodName"],v["lowPrice"],v["avgPrice"],v["highPrice"],v["place"],v["unitInfo"],v["pubDate"])

    time.sleep(1)



if __name__ == "__main__":

    # 写表头

    with open("蔬菜价格.csv","a",encoding="utf-8",newline="") as f:

        w = csv.writer(f)

        w.writerow(("品名","最低价","平均价","最高价","产地","单位","发布时间"))


    # 创建线程池 

    with ThreadPoolExecutor(20) as t:

        for i in range(100): # 投递100个任务

            t.submit(get_one_page,current=i)


    print("OK")

 

 结果:

python 多线程 读写串口 python 多线程读取csv_线程池

 表格打开:

python 多线程 读写串口 python 多线程读取csv_线程池_02