python futures 练习

本文通过一个具体的示例介绍了如何使用 Python 的 concurrent.futures 模块进行多线程编程,实现图片验证码的批量下载及识别。文章展示了 ThreadPoolExecutor 的两种主要使用方式:submit 和 map 方法,并对比了它们的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闲来无事,看看python futures 多线程这块,确实方便 牛皮

from concurrent.futures import ThreadPoolExecutor
import requests
import random
import pytesseract
from PIL import Image

url = ["http://www.epicc.com.cn/wap/CreateImage?randName=verifypicForCar&next=%d"%x for x in range(10)]

h = {
    "Referer":"http://www.epicc.com.cn/wap/views/policyClaim/index.jsp",
    "User-Agent":"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Mobile Safari/537.36",
}

def aaa(url):
    filename = str(random.random()).split('.')[-1]
    info = requests.get(url,headers=h).content
    f=open(filename+".png","wb")
    f.write(info)
    f.close()
    return filename

def shibie(res):
    res = res.result()

    image = Image.open(res+".png")
    code = pytesseract.image_to_string(image)
    f = open('1.txt',"a+")
    f.write(code+"\n")
    f.close()

ex = ThreadPoolExecutor(max_workers=10)
for i in url:
    ex.submit(aaa,i).add_done_callback(shibie)

随手写的 很low 

url = ["http://www.epicc.com.cn/wap/CreateImage?randName=verifypicForCar&next=%d"%x for x in range(1)]

h = {
    "Referer":"http://www.epicc.com.cn/wap/views/policyClaim/index.jsp",
    "User-Agent":"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Mobile Safari/537.36",
}
filename = str(random.random()).split('.')[-1]
def aaa(url):
    info = requests.get(url,headers=h).content
    f=open("ttt/"+filename+".png","wb")
    f.write(info)
    f.close()
    return "OK"

s = time.time()
ex = ThreadPoolExecutor(max_workers=10)
res = ex.map(aaa,url)
print list(res)
e = time.time()
print "多线程用时",e-s

常用的 这俩方法  根据应用场景不同自行选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值