python爬虫怎么写多线程_python爬虫 写一个简单的多线程并发抓取代码教程

202008102025.jpg

单线程太慢的话,就需要多线程了,这里给个简单的线程池模板 这个程序只是简单地打印了1-10,但是可以看出是并发的。

虽然说python的多线程很鸡肋,但是对于爬虫这种网络频繁型,还是能一定程度提高效率的。from threading import Thread

from Queue import Queue

from time import sleep

# q是任务队列

# NUM是并发线程总数

# JOBS是有多少任务

q = Queue()

NUM = 2

JOBS = 10

# 具体的处理函数,负责处理单个任务

def do_somthing_using(arguments):

print(arguments)

# 这个是工作进程,负责不断从队列取数据并处理

def working():

while True:

arguments = q.get()

do_somthing_using(arguments)

sleep(1)

q.task_done()

# fork NUM个线程等待队列

for i in range(NUM):

t = Thread(target=working)

t.setDaemon(True)

t.start()

# 把JOBS排入队列

for i in range(JOBS):

q.put(i)

# 等待所有JOBS完成

q.join()

j_0002.gif

本博客源码Github地址:

请随手给个star,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值