python笔记13-多线程实战篇(tomorrow),,安装1.tomorr
python笔记13-多线程实战篇(tomorrow),,安装1.tomorr
安装
1.tomorrow安装,用pip可以直接安装
pip install tomorrow
单线程
1.以下案例是单线程时候跑的情况,在下载图片的时候很耗时。
# coding:utf-8from bs4 import BeautifulSoupimport requestsimport osimport 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 imagesdef 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: passif __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-8from bs4 import BeautifulSoupimport requestsimport osimport timefrom 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: passif __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笔记13-多线程实战篇(tomorrow)
相关内容
- ipython在最新python版本中出现事件循环问题,,问题:w
- python涓紝a=10.0 b=10.0 a is b 涓轰粈涔堣緭鍑烘槸false,
- python 打印调用函数名和文件名,,import ins
- python第三方库系列之九--os库,, 我们经常会与文件
- Python PyPI中国镜像,,from:http:
- 用Python操作git命令,,import osf
- Python之禅中的几句话--传说中的蛇宗总纲,,Simple is
- centos7 安装python3.8,,1.安装编译相关工具
- Mac 下 安装Python3,,因为Mac系统自带P
- 编写高效内存Python代码的3个技巧,
评论关闭