python笔记13-多线程实战篇(tomorrow)
安装
1.tomorrow安装,用pip可以直接安装
pip install tomorrow
单线程
1。以下案例是单线程时候跑的情况,在下载图片的时候很耗时。
# coding:utf-8
from bs4 import BeautifulSoup
import requests
import os
import time
# 当前脚本所在的目录
cur_path = os.path.dirname(os.path.realpath(__file__))
def get_img_urls():
r = requests.get("http://699pic.com/sousuo-218808-13-1.html")
fengjing = r.content
soup = BeautifulSoup(fengjing, "html.parser")
# 找出所有的标签
images = soup.find_all(class_="lazy")
return images
def save_img(imgUrl):
try:
jpg_rl = imgUrl["data-original"]
title = imgUrl["title"]
# print(title)
# print(jpg_rl)
# print("")
# 判断是否有jpg文件夹,不存在创建一个
save_file = os.path.join(cur_path, "jpg")
if not os.path.exists(save_file): os.makedirs(save_file)
with open(os.path.join(save_file, title+'.jpg'), "wb") as f:
f.write(requests.get(jpg_rl).content)
except:
pass
if __name__ == "__main__":
t1 = time.time()
image_ulrs = get_img_urls()
for i in image_ulrs:
save_img(i)
t2 = time.time()
print("总耗时:%.2f 秒"%(t2-t1))
运行结果:
耗时:4.27 秒
使用多线程tomorrow
1.一行代码搞定多线程,在函数上加个@threads(5),括号里面代码线程的数量,数字越大,运行的速度越快
# coding:utf-8
from bs4 import BeautifulSoup
import requests
import os
import time
from tomorrow import threads
# 当前脚本所在的目录
cur_path = os.path.dirname(os.path.realpath(__file__))
def get_img_urls():
r = requests.get("http://699pic.com/sousuo-218808-13-1.html")
fengjing = r.content
soup = BeautifulSoup(fengjing, "html.parser")
# 找出所有的标签
images = soup.find_all(class_="lazy")
return images
@threads(5)
def save_img(imgUrl):
try:
jpg_rl = imgUrl["data-original"]
title = imgUrl["title"]
# print(title)
# print(jpg_rl)
# print("")
# 判断是否有jpg文件夹,不存在创建一个
save_file = os.path.join(cur_path, "jpg")
if not os.path.exists(save_file): os.makedirs(save_file)
with open(os.path.join(save_file, title+'.jpg'), "wb") as f:
f.write(requests.get(jpg_rl).content)
except:
pass
if __name__ == "__main__":
t1 = time.time()
image_ulrs = get_img_urls()
for i in image_ulrs:
save_img(i)
t2 = time.time()
print("总耗时:%.2f 秒"%(t2-t1))
运行结果:
总耗时:0.24 秒
参考github案例:Tomorrow
python自动化交流 QQ群:779429633
标签:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具