爬虫系统的要求
基本要求
- 遍历链接,并获取网页
- 网页解析,分析
- 数据存储
- 日志: 错误日志, 运行日志
分布式要求
- 并行爬取: 效率高, 可以设定爬虫的数目
- 任务管理: 任务队列, 出错了可以重新爬取
- 代理: 考虑到爬取太多,可能会触发拦截,因此需要通过代理。
- 策略: 可以灵活的设定策略, 爬取频率, 爬取数量, 使用不同的网管,使用不同的header
爬虫管理
- 不同的网站,爬虫的规则是不一样的,因此爬虫可以自定义规则
- 脚本: 有些网站可能需要登录认证。
循序渐进
v0.1 http请求
baseUrl := "http://www.xxx.cn"
req,_ := http.NewRequest("GET",baseUrl,nil)
req.Header.Set("User-Agent", GetRandomUserAgent())
client := http.DefaultClient
res, e := client.Do(req)
if e !=nil {
fmt.Print(e)
return
}
if res.StatusCode == 200 {
body := res.Body
defer body.Close()
bodyByte,_ := ioutil.ReadAll(body)
resStr := string(bodyByte)
print(resStr)
}