爬虫采集数据遇到验证码怎么解决?

摘要:出现验证码一般是采集速度比较快、采集数据多,触发了网站的防采集机制所导致的。解决方案是由于其不确定性,并不是采集每一条数据都出现验证码。故需在规则中引入分支判断,对网页是否出现验证码进行判断。

 

采集过程碰到验证码怎么办?

验证码出现的时间不确定!

出现位置也不确定!

so我们要怎么解决呢?

 

原因:该情况一般是采集速度比较快、采集数据多,触发了网站的防采集机制所导致的。

解决方案:由于其不确定性,并不是采集每一条数据都出现验证码。故需在规则中引入分支判断,对网页是否出现验证码进行判断。如:出现时走左分支,不出现时走右分支。分支的判断一般可选择“当前页面包含文本”,具体请根据网页实际情况进行操作。分支判断的使用请参考相应教程,教程链接:https://www.bazhuayu.com/tutorial/judge

在配置规则的过程中,应采取先判断后识别验证码的流程顺序。此外,由于验证码不是时时出现,故一定要找到验证码出现的界面,从而完成“识别验证码”该步骤的建立。

操作示例:

1、按常规流程制作规则。

2、运行单机采集,采集部分数据后发现提示访问频繁,需要输入验证码。

此时应停止采集,对规则进修改。

 

3、回到“流程”页面,从流程设计器左侧栏拖一个“判断条件”到流程图中。

 

4、设置好判断条件。(验证码页面会出现的正常页面不会出现。如:您的访问出错了,验证输入框的xpath。示例采用的是验证码提示语“您的访问出错了”,诸位可自行选择合适的判断条件。详细操作请参考分支判断的使用。)

验证码在采集过程中出现,不确定出现时间甚至位置-图4

 

5、判断条件设好后,点击需要识别的验证码。如图:

(上述流程,前三步操作也可按如下顺序进行:

  A.点击网页中的验证码输入框

B.点击“识别验证码”

  C.点击网页中的验证码

即先选择验证码还是先选择输入框,两者殊途同归,各位请灵活应用。)

6、配置“识别失败”场景,因部分网站需多次输入验证码(即使输对也被要求重新输入),此外八爪鱼对接的是打码平台有0.1%的概率出错。故为规避因上述情况导致采集中断,我们需配置“识别失败”场景,告诉八爪鱼什么情况下验证码是识别失败的,从而再次进行自动识别,直至识别正确。

 

7、输入错误的验证码,页面一般都会有相应的提示。此时点击选中该提示,从而告诉八爪鱼出现该提示即表示验证码识别失败。

8、识别失败场景配置完后进行识别成功场景的配置。进入场景后手动输入正确的验证码,然后点击“应用到网页并完成配置”。

(完成验证码识别操作后,点击“流程”,若出现识别验证码在分支的最右边,可点击长按,拖动到对应位置。)

至此,“识别验证码”操作完成,剩余操作请诸位根据实际需求设置。图中示例在识别验证码后只做提取数据操作,此时即可运行本地采集进行验证调试。当第一次弹出验证码码输入框时。点击勾选上“自动识别验证码”,待验证码输入后,点击“确定”,任务将自动运行下。云采集不需要操作这一步,直接运行即可。当不点击勾选上“自动识别验证码”,则需要每次出现此弹窗时手动输入,且只支持单机采集。点击“自动识别验证码”后本次采集将消耗验证码余额,单机采集和云采集均支持。

 

注:“识别验证码”默认勾选ajax,超时时间为5秒。用户可根据网站实际情况其高级选项中进行配置,如网页加载比较快可将超时时间设短些。但建议不要更改,尤其是是否勾选ajax,以免出错!)

 

 

下图为本地采集验证识别情况。在勾选“自动识别验证码”并“确认”后,本地采集过程中将自动识别验证码,并消耗余额。余额购买请点击

https://www.bazhuayu.com/plan

注意勾选上验证码套餐!

发布了85 篇原创文章 · 获赞 28 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/BAZHUAYUdata/article/details/100743675
今日推荐