【超详细】黑板客全五关攻略

前言:最近从一篇微信文章中了解到了黑板客爬虫关卡这个网站,便去尝试了一下,以下是过程记录

代码源码在文章最后,如果觉得对您有帮助的话,希望您点个赞鼓励创作

第一关

地址:http://www.heibanke.com/lesson/crawler_ex00/

在这里插入图片描述

这是最初的关卡,也没有什么难度,根据提示在网址后面更替数字,会发现一层一层迭代,那么猜测需要一直迭代直到最后一个网站

显然这里考察的就是一个程序的迭代,还有简单的爬虫提取数字

程序结束标志是无法提取到数字,这里用一个异常处理就好

第二关

地址:http://www.heibanke.com/lesson/crawler_ex01/
在这里插入图片描述

在密码位置随意输入一个数字,点提交之后,利用开发者工具查看网络部分

在这里插入图片描述

这里的截图没用截全,在上面还有个请求方式POST,到这里就知道了,这一关考察的是表单的提交。

根据其Form Data构造参数,使用requests.post进行提交即可

根据其提示,密码是30以内数字,那么遍历就行了

根据其反馈的文本来判断是否需要继续循环遍历,当不是密码错误的时候就结束循环(还有可能出现的提示是 密码只有数字哦 )

第三关

地址:http://www.heibanke.com/lesson/crawler_ex02/

从第三关开始,就需要注册它这个网站了,没用登录直接访问的话会自动跳转到登录界面

在这里插入图片描述

发现其说比上一关多了两层保护,那么先用上一关的代码试试,发现会403,同样的思路利用开发者工具来查看

发现headers里面需要带cookies,只需要多这一步就行了(我也不知道还有层保护是什么)

第四关

地址:http://www.heibanke.com/lesson/crawler_ex03/
在这里插入图片描述

密码随机提交后,利用开发者工具会发现提交跟之前的没啥区别,但是新出现的页面不一样

在这里插入图片描述

在这里插入图片描述

这个网站的加载特别慢,在加上一开始的提示,我们知道这个页面最好是用多线程访问,因为每页出现的密码的位置是随机的,所以遍历13页并不一定会(可以说很大概率不会)拿到全部100位,所以多线程是很必要的

前一列是密码的位置,后面一列是密码的值

根据翻看了几页后,猜测密码大约是100位,那么我们就要不停地刷,刷满100位后排序一下就好了(或者说从1-100按序遍历就好了)

因为经过了注册,所以这一关的密码每个人都是不一样

第五关

地址:http://www.heibanke.com/lesson/crawler_ex04/

在这里插入图片描述

同样步骤,开发者工具启动!

在这里插入图片描述

Form Data中除了以往出现的三个参数,还出现了两个新参数,在输入界面尝试输入后发现,最后一个参数是验证码,那么就需要寻找倒数第二个参数

在网页源码中搜索参数变量名,发现

在这里插入图片描述

于是这个参数也有了

密码这里并没有提示,那么根据二三关的提示进行1-30的猜测

关于验证码,本来是打算用tesseract-ocr来解决的,奈何识别率太低了,在做训练集的时候又发现自己生成的语言库与tesseract版本不一致导致无法运行,如果有知道解决方法的小伙伴,希望能向您请教~

最后我利用了百度ocr的api接口,进行的识别,虽然识别正确率也不高,但是总归能用

源码

最后放上GitHub源码

ps:如果本篇文章对您有助的话,记得点赞评论支持哦~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值