摘要
文章内容是本人基于官方文档以及源码的学习,在学习过程中记录整理。
允许访问的域名配置
通过colly.AllowedDomains()
方法控制可以访问的域名,不在白名单内的域名就不会发起请求了
1 | package main |
异常处理
可以对访问失败的页面进行处理,以下情况视为异常:
- 请求目标地址失败
- 状态码大于203
- response为空
- 页面解析失败(
OnHTML
,OnXML
)
1 | package main |
登录自动保存session
1 | package main |
请求深度
通过colly.MaxDepth()
可以设置爬虫自动请求深度
1 | package main |
开启异步请求并设置并发度
- 通过配置
colly.Async(true)
可以开启异步并发请求,但同时需要通过c.Wait()
阻塞爬取任务退出。 - 在开启并发请求后可以通过
c.Limit(&colly.LimitRule{DomainGlob: "*", Parallelism: 4})
配置设置并发数。
1 | package main |
代理轮询
1 | package main |
队列
1 | package main |
设置请求延迟
通过设置RandomDelay
可以让每次请求目标地址前延迟一段时间,延迟的时间为小于RandomDelay
设置值的随机时间,通过设置此参数可以一定程度是避免反爬机制。
1 | package main |
使用redis作为存储、队列
1 | package main |
操作上下文
1 | package main |
启动爬虫web服务
1 | package main |
设置路由过滤条件
1 | package main |
爬取商品价格网站并将信息保存在文件中
1 | package main |
设置本地缓存目录
通过colly.CacheDir("./isme")
方法可以在指定路径下生成缓存,下次请求同一个页面会支持访问缓存数据
1 | package main |