1. 程式人生 > 其它 >python執行緒池 批量抓取蔬菜價格 並寫入csv檔案

python執行緒池 批量抓取蔬菜價格 並寫入csv檔案

# 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")

 

 結果:

 表格開啟: