黑板客爬虫闯关通关

黑板客爬虫闯关通关

爬虫学的好 牢房进的早

前言

黑板客爬虫闯关共5关

  • http://www.heibanke.com/lesson/crawler_ex00/
  • http://www.heibanke.com/lesson/crawler_ex01/
  • http://www.heibanke.com/lesson/crawler_ex02/
  • http://www.heibanke.com/lesson/crawler_ex03/
  • http://www.heibanke.com/lesson/crawler_ex04/

网上关于这部分的代码实践也不少
绝知此事要躬行 自己code一遍

第一关

[站外图片上传中...(image-237859-1570004297921)]

requests GET 不断请求即可

下一个你需要输入的数字是25997. 老实告诉你吧, 这样的数字还有上百个
第49次尝试 URL:http://www.heibanke.com/lesson/crawler_ex00/25997
下一个你需要输入的数字是73222. 老实告诉你吧, 这样的数字还有上百个
第50次尝试 URL:http://www.heibanke.com/lesson/crawler_ex00/73222
下一个你需要输入的数字是93891. 老实告诉你吧, 这样的数字还有上百个
第51次尝试 URL:http://www.heibanke.com/lesson/crawler_ex00/93891
恭喜你,你找到了答案.继续你的爬虫之旅吧
最终地址是:http://www.heibanke.com/lesson/crawler_ex00/93891
END

第二关

黑板客爬虫闯关通关_第1张图片
UTOOLS_COMPRESS_1569999938435.png

猜密码 这里从0~30的列表中 random.choice每次随机给出一个数
若此数密码不正确 则从该列表中remove

尝试密码:13
您输入的密码错误, 请重新输入
尝试密码:5
您输入的密码错误, 请重新输入
尝试密码:10
您输入的密码错误, 请重新输入
尝试密码:8
恭喜! 用户spider成功闯关, 继续你的爬虫之旅吧

第三关

黑板客爬虫闯关通关_第2张图片
Xnip2019-10-02_15-10-41.jpg

第三关先进去是这样的 没有谜题 一头雾水
需要先在这里注册账号 登陆后重新打开 出现谜题

黑板客爬虫闯关通关_第3张图片
UTOOLS_COMPRESS_1570000211937.png

还是猜密码 第一反应就是要先登陆 requests Session 模拟登陆即可
但是没有成功 谜题写着两层保护 也没看懂
百度后 明白了 还有一层token的加密

[站外图片上传中...(image-96084-1570004297921)]

首先是账号登陆时需要一个token
其次是谜题猜密码时也需要一个token
这里两个token均来自cookies

session = requests.Session()
session.get('http://www.heibanke.com/lesson/crawler_ex02/')
csrftoken1 = session.cookies.get('csrftoken')
account_data = {
    'csrfmiddlewaretoken': csrftoken1,
    'username': 'fikqmw98654',
    'password': '123456'
}
session.post('http://www.heibanke.com/accounts/login/?next=/lesson/crawler_ex02/',
             data = account_data)
csrftoken2 = session.cookies.get('csrftoken')

两次token不同 需重新获取 然后就是熟悉的猜密码 和第二关相同

第四关

黑板客爬虫闯关通关_第4张图片
uaxydA.png

依然一脸懵逼 尝试输入密码 提示密码在这里寻找

黑板客爬虫闯关通关_第5张图片
UTOOLS_COMPRESS_1570001394116.png

注意:并不把所有13页的密码按照<位置,值>拼起来就组成最终的密 码,因为有些位置会重复给出 可能加载完所有页 也不一定组成出完整的密码 可能还是会有个别位置缺失
PS:第一次尝试就是把所有页爬下来 拼密码 发现存在个别位置缺失
其实只要第一页反复刷新就可以了
直到所有密码(共100位 页面探索所得)都有拼上为止

当然拼密码之前 需要模拟登陆 熟悉的配方
经过漫长的登陆 终于获得所有位置的密码

共100位密码,已获得99位密码
共100位密码,已获得99位密码
共100位密码,已获得99位密码
共100位密码,已获得100位密码
密码是:5357748950695244329548946136479903948743260484371348776618136963449163264706489936702831052533819016
恭喜! 用户aaa成功闯关, 继续你的爬虫之旅吧

第五关

黑板客爬虫闯关通关_第6张图片
UTOOLS_COMPRESS_1570001895588.png

加了验证码 验证码使用OCR识别出正确的字母 这里的图片已经很清晰 不用二值化或灰度处理 唯一的问题就是个别字母倾斜导致OCR识别错误 暂时不知道如何倾斜矫正

OCR使用 pytesseract或者百度OCR 两者的识别准确率半斤八两 都不太高 基本都出错在倾斜字母上 但总体上还是能用

tips:不用把每次的验证码图片下载下来 会下载很多验证码 以后也不会用到 浪费空间 直接获得验证码图片的二进制content 每次拿二进制content去识别

当然验证码识别之前 需要模拟登陆 密码也是30以内的数字 熟悉的配置

经过漫长的等待

第1次尝试,验证码:CINR,密码:3
验证码输入错误
第2次尝试,验证码:SSMO,密码:3
恭喜! 用户spider成功闯关, 后续关卡敬请期待

END

Code:https://github.com/sadjjk/CrawerExam-heibanke

Blog Stock

你可能感兴趣的:(黑板客爬虫闯关通关)