版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haolipengzhanshen/article/details/88977927
使用queue队列来进行爬虫爬取web网页的步骤
1.创建并初始化Collector
2.使用queue.New创建队列
3.调用queue的AddRequest()或AddURL方法,将请求或url链接投递到队列中,等待其他协程来进行消费
4.调用queue类的run方法,来消费队列中元素
源代码分析
试想下让你用go语言实现一个队列,你要如何来实现?
colly是用链表来实现队列Queue的
1.定义队列元素的结构
2.队列当前的大小以及最大容量
3.api:AddRequest:向队列中添加元素
GetRequest:从队列中取元素
4.多线程或多协程来访问队列时,如果保证并发安全 rwlock 读写锁
传递这个锁的时候,传递的是指向锁的指针
分析流程
- 创建队列New函数,涉及到相关的结构体
- AddRequest和AddURL函数,向队列中添加元素
- 分析Run方法,进而讲解到GetRequest,从队列中获取请求