黑板客爬虫闯关解答(更新到第五关)
初学爬虫,又没什么想爬的东西,正好看到这个闯关就做了一下。截至今天,游戏作者更新到第五关。
前面4关都比较简单,具体请搜索网上的教程。比如这里有个详细的。
我的代码放在 GitHub:fuyufjh/crawler_ex_answer
说一下第五关:
第五关同样是猜数字,只比第三关多了一个验证码。我们只要把第三关的代码复制过来改改就好。
如果不嫌弃准确率低,可以用 Google 家的 OCR 库 tesseract,Python 下有一个封装库 pytesseract。
作者的验证码对字母做了一个小角度的旋转,这个干扰很大(看来训练数据里没有歪的 sample),导致识别成功率不高,大约20%。
1 | urllib.request.urlretrieve(captcha_image_url, 'captcha.png') |
有些识别一看就是错误的,就不去发 post 请求验证了。
1 | if not re.match(r'[A-Z]{4}$', vcode): |
完整代码在这里。
为了提高准确率,我寻思可以用 SIFT 特征匹配字母(因为这个验证码字体都一样,只有旋转变换)。如果做了再更新。