首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python笔记13-多线程实践篇

前言

前面几篇连续讲解了多线程的一些概念,都是一些理论的东西,有了一些理论基础了,接下来就让我们把所学的知识用到实践中吧!

一、 安装

1.tomorrow安装,用pip可以直接安装

> pip install tomorrow

二、 单线程

1.以下案例是单线程时候跑的情况,在下载图片的时候很耗时。

```

# coding:utf-8

from bs4 import BeautifulSoup

import requests

import os

import time

# 当前脚本所在的目录

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文件夹,不存在创建一个

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

# 当前脚本所在的目录

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文件夹,不存在创建一个

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 秒

```

多线程就是这么so easy! 一行代码就能搞定~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180125G0K5U100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券