#创建队列用于保存URL地址
q = Queue.Queue()
lock = thread.allocate_lock()
#将所有URL保存到队列中
for v in s:
q.put(v)
#创建所有线程并启动
t = []
for i in range(n):
v = Parse(book_name, q, lock, proxy)
t.append(v)
v.start()
#等待线程结束
for i in t:
i.join()
以上代码是get_chapters()函数中的部分代码,注释已经很清楚就不作过多解释了,它将完成线程的创建、启动并等待所有线程的结束。
四、结语
此工具采用了Python语言进行编写,代码短小、简洁、易于维护和修改。在设计上充分考虑了扩展性,并提供了样例,容易进行扩展。同时在性能方便采用多线程设计,可以提高效率。支持代理服务器,可以用在有需要代理服务器的环境。如果它不能满足要求,完全可以在它的基础上进行扩充,具有很高的复用性。
|