最近在看Queue多线程编程,准备写一个爬虫去爬网站的图片,看到的例子很多是一个固定的任务,用线程去跑几遍,实则Queue与Threading结合的方式是,线程可以从队列中获取一个数据去处理,执行任务函数,也就是说,任务函数的参数必须是队列,而任务函数是以队列中单个数据为参数的一个循环。在此基础上,队列就必须是一个全局变量。这类程序的代码组成如下:
全局变量队列
任务函数(队列)
线程执行函数(线程个数)(for循环)
主函数部分调用线程执行函数
遇到的问题:
(1)关于下载图片时图片编号的问题,这个可以定义在任务函数中;
(2)关于线程的参数,args = XXX, ,这里最好写逗号,否则程序可能会对参数类型判断错误,这里必须是队列。
稍后附上代码,初学python,欢迎各位大神指教。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib
import re
import Queue
import hashlib
import cStringIO
import threading
from PIL import Image#第三方图像处理库,这个模块需要自己安装
#获取网页内链接
def get_Url(url