在采集过程中,可能会在某个步骤后不定时地出现验证码,影响正常采集。
这种情况通常是因为采集速率快、数据多,触发了网站的防采集机制。
通过设置【判断条件】+【验证码手动辨识】,可实现手动辨识出现的验证码,保障数据采集的稳定性。
以下将以实例具体说明。
Step1:先根据需求,配置采集规则
示例网址:weixin.sogou.com
在搜狗陌陌中输入关键词搜索,点击搜索结果的公众号ID,进入公众号介绍页。
Step2:找到验证码出现的页面
建好采集规则,手动执行几次后发觉:在【点击列表链接】后,会不定时地出现验证码。
注意:不同网站出现验证码的位置可能是不同的,需仔细观察。
Step3:在可能出现验证码的步骤后加入判别条件
本示例中验证码是在【点击列表链接】后出现的,因此在此步骤后,加入一个【判断条件】步骤。
Step4:设置判定条件
找到出现验证码后页面的特点,将其作为判定条件,以区别于未出现验证码的正常页面。
例如,本示例中的页面出现验证码后,会有文字提示【为了保护您的网路安全,请输入验证码】,正常页面则没有此提示。
可将【为了保护您的网路安全,请输入验证码】作为判定条件:
为左分支设置执行条件为:【当前页面包含文本】,输入文本【请输入验证码】;
右分支设置执行条件为:【不判定。总是执行该分支】。
Step5:设置【验证码识别】控件
梳理我们的需求,需要:
如果【点击列表链接】后出现验证码,则走左分支进行【验证码手动辨识】;
如果【点击列表链接】后没有出现验证码,则继续往下执行采集步骤。
因此须要为左分支加入【验证码识别】控件。
请依照页面提示一步步来:
① 选中【判断条件-分支】(即最右边的分支)
② 选中页面中的验证码输入框,在弹出的操作提示框中,选择【识别验证码】
③ 在页面中选中验证码图片
④ 继续在页面中选中【确定】按钮
⑤ 配置【识别失败】场景:点击【确定】,八爪鱼会手动递交一个错误验证码,此时页面中出现
提示。点击页面中的
,再点击操作提示框中的【确认错误】。
⑥ 配置【识别成功】场景。点击【开始配置辨识成功场景】,在弹出的操作提示框中,输入正确的验证码,然后点击【应用到网页并完成配置】,可以看见,输入验证码成功,验证码页面消失,出现正常页面数据。
至此,【判断条件】+【识别验证码】配置完成,剩下的就是按需配置采集流程了。
特别说明:
a. 为什么要配置【识别失败】场景?因为手动辨识验证码,可能存在辨识错误的情况(网站须要多次输入验证码/八爪鱼对接的打码平台有0.1%机率出错)。八爪鱼须要晓得辨识错误后的提示是哪些,根据是否出现提示判定是否辨识失败。如果辨识失败,则再度手动辨识,直至辨识正确。
关于【自动辨识验证码】的其他注意事项:
1、【自动辨识验证码】会消耗验证码余额,如果没有余额需 购买验证码套餐
2、进行本地采集时,第一次需帮助系统点击一次【确认】。进行云采集时,这个过程由八爪鱼自行完成,无需用户自动确认。
3、【自动辨识验证码】,只支持手动辨识两种类型的验证码:输入验证码、和部份滑块验证码,具体请查看 验证码套餐简介 。
4、【自动辨识验证码】默认勾选 Ajax,超时时间为 5 秒。可依据网站实际加载情况进行修改。
关于【判断条件】的其他注意事项:
1、允许某个分支中无任何操作步骤。
2、对于须要同时判定多个条件,则须要嵌套使用多个分支判别。但建议将已选好判定条件后的网址装入八爪鱼中采集数据。
3、八爪鱼中分支判定对 【存在】 或【不存在】的是非判定,其操作性更为简单方便。对大小的比较判别操作冗长,需借助XPath实现。
5、如果不同的分支内有不同的【提取元素】步骤,则每位分支内全部【提取元素】步骤中的 字段总个数 和 字段名 需保持一致。