其实关于爬虫并没有明确多少数量开线程,因为这个是无穷的,随着时代的不断发展,每一个革新都给我们焕然一新的感觉,可能大家现在在学习的时候,已知内容是有限的,真正在不断探索以后,会发现这个内容是无穷了,小编就看到一组代码可以爬取几百万的线程数据,一起来看下吧~
1、爬虫环境
Pycharm python3.7.0
2、进程和线程的关系:
一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
资源分配给进程,同一进程的所有线程共享该进程的所有资源。
CPU 分给线程,即真正在 CPU 上运行的是线程。
3、多线程通信实例
因为全局变量并不是线程安全的,比如说全局变量里(列表类型)只有一个 url 了,线程 B 判断了一下全局变量非空,在还没有取出该 url 之前,cpu 把时间片给了线程 C,线程 C 将最后一个url 取走了,这时 cpu 时间片又轮到了 B,B 就会因为在一个空的列表里取数据而报错,而 queue 模块实现了多生产者、多消费者队列,在放值取值时是线程安全的。
4、实例代码import threading # 导入 threading 模块
from queue import Queue #导入 queue 模块
import time #导入 time 模块
# 爬取文章详情页
def get_detail_html(detail_url_list, id):
while True:
url = detail_url_list.get() #Queue 队列的 get 方法用于