是这样的,我用pytesseract和PIL的Image合起来用的识别验证码成功率大概在7成左右。
所以,我想当出现验证码失败时就再次重复[爬网站,获取验证码,提交数据]这几个步骤。
我是写成A->B->C这样一环扣一环的,所以我想在C提交数据时说验证码失败时再次调用A,但是由于scrapy好像都是弄成异步的,调着调着C就先返回了。 # 这里是我理解错误了,其实是scrapy默认不支持重复爬URL
请问怎么弄?
顺便问一下大家处理验证码失败是怎么处理的?
是这样的,我用pytesseract和PIL的Image合起来用的识别验证码成功率大概在7成左右。
所以,我想当出现验证码失败时就再次重复[爬网站,获取验证码,提交数据]这几个步骤。
我是写成A->B->C这样一环扣一环的,所以我想在C提交数据时说验证码失败时再次调用A,但是由于scrapy好像都是弄成异步的,调着调着C就先返回了。 # 这里是我理解错误了,其实是scrapy默认不支持重复爬URL
请问怎么弄?
顺便问一下大家处理验证码失败是怎么处理的?
1.scrapy是默认不允许再爬同样的URL的,要是想重新再爬相同的URL,则要在setting.py里添加一行:
然后在请求那里再添加多一个参数:
dont_filter=True
参考:这个
2.验证码失败时怎么处理呢?答案就是尽量模仿浏览器的行为。当你输入验证码出错时会怎样?它会给你换张验证码图片,所以我们要做的就是获取这个第二张图片的url,开个工具看看headers是什么,然后加到请求上去就行了。不行就第三张,第四张,直到行为止。