详情页爬虫流程图(过时)
2018-10-19 15:52:53 0 举报
详情页爬虫文件
作者其他创作
大纲/内容
爬虫启动
任务列表
带SID请求注册
根据监控模块维护的分发状态从任务表筛选任务
是
获取代理IP
infodetail二三级分类直接由task中记录填充
NoHttpResponseException
否
404
定时任务,5min运行一次。通过wrongtask表统计1h内数据网页响应500次数5,暂停分发此domain下任务请求网页超时次数200,暂停分发此domain任务网页解析出错次数5,暂停分发此domain下任务代理IP消耗金额2元,暂停分发所有任务以上暂停后均邮件通知,提供接口一键恢复分发
修改task状态为废弃任务(status=5)
超时
根据返回值分别处理
digikey 404
该流程图中爬虫退出时均会与web控制端注销模块进行交互
返回200
task是否包含二、三级分类信息
注册成功?
申请注册
对应代理IP的权重减1
返回空
返回注册结果
出错
返回“SSLException”
IP权重加1
任务列表为空?
avent.com
SSLException
修改task状态为待下一次执行(status=3)task失败次数标识加1
带SID申请
返回“403”
睡眠1s
爬虫异常退出
返回任务列表
任务分发模块
更新取到的task状态0-1更新sid为请求者SID
开启新一轮任务
识别页面类型
手动回滚移除该产品刚添加的详情信息价格信息关联品别名
详情页
web控制端
读取配置文件设置爬虫运行参数(代理IP数、线程数等)
注册模块判断是否已注册等更新进server表
返回403
增量任务
修改task状态为待人工审查(status=4)
解析网页中各项数据,填入infodetail对象
HTTPUtil工具类开始请求网页
注:该方法应加锁,确保同一时间只能有一只爬虫在申请任务
保存wrongtask信息
根据task中“是否为新增任务”标识辨识增量任务与更新任务
mouser.com
失败
Jsoup解析html获取Document对象
解析网页中价格信息,填入infodetail对象
返回“NoHttpResponseException”
返回500
更新任务
请求者(SID)是否已注册?
wrongtask表中status字段为错误类型标识 错 误 -- status值 403 -- 403 404 -- 404 500 -- 500 超时 -- 001 SSL错误 -- 002NoHttpResponse -- 003 解析时出错 -- 004 程序错误 -- 005 未知错误 -- 000
......
监控模块
通过url查询数据库中对应的infodetail记录
从IP池随机取出IP访问url
代理IP权重是否小于设定阈值
任务结束,当前线程继续执行任务池其他任务
删除该infodetail对应的价格信息添加新的价格信息更新任务状态为已完成(status=2)
页面HTML
403
从IP池移除此IP
判断task所属domain
请求任务
邮件通知爬虫异常退出
请求代理IP更新IP池
digikey.com
构造SQL存入数据库并更新任务状态为已完成(status=2)
SSLExceptionHttpHostConnectException
返回“404”
不存在
邮件通知修改任务状态为待人工审查(status=4)
IP池存活IP数量是否小于阈值
任务池任务全部完成
注册模块注销爬虫更新进server表
返回“timeout”
返回“500”
IP权重小于等于0?
返回页面HTML
手动退出
timeout
500
收藏
收藏
0 条评论
下一页