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

大概用了一小天的时间吧,把这五关给过了,还挺好玩的。推荐小白玩玩。直接po代码了。

我装pytessetact总有问题,之后其实可以直接训练一个cnn来做的,但是现在先po代码了,晚上回来随便弄弄。然后我第五关验证码就是人工把图片show出来,然后人工识别输入结果,很脑残。不管了。

import requests
from lxml import etree
import redef level_1():url_row = 'http://www.heibanke.com/lesson/crawler_ex00/'url = 'http://www.heibanke.com/lesson/crawler_ex00/10963/'while 1:try:html = etree.HTML(requests.get(url).text)a = html.xpath("//div[@class='col-xs-12 col-sm-10 col-md-8 col-lg-6']//h3")[0].textnum = re.findall('下一个你需要输入的数字是(\d+)',a)[0]url = url_row+num+'/'print(url)except:breakdef level_2():url = 'http://www.heibanke.com/lesson/crawler_ex01/'username = 'hi'password = 0while password<40:resp = requests.post(url, data={'username':username,'password':password})html = etree.HTML(resp.text)a = html.xpath("//div[@class='col-xs-12 col-sm-10 col-md-8 col-lg-6']//h3")[0].textif a=='您输入的密码错误, 请重新输入':password += 1else:print(password)breakdef level_3():username = 'emma'password = 'emmaczw'# url = 'http://www.heibanke.com/lesson/crawler_ex02/'url = 'http://www.heibanke.com/accounts/login/?next=/lesson/crawler_ex02/'# url = 'http://www.heibanke.com/accounts/login'r_session = requests.Session()resp = r_session.get(url)# resp = r_session.post(url,data={'username':username,'password':password})# print(resp.text)token = resp.cookies.get('csrftoken')resp = r_session.post(url,data={'username':username,'password':password,'csrfmiddlewaretoken':token})url = resp.urlprint(url)username = 'hi'password = 20while password<40:r_session.get(url)token = r_session.cookies.get('csrftoken')resp = requests.post(url,data={'username':username,'password':password,'csrfmiddlewaretoken':token},cookies=r_session.cookies)print(resp.url)html = etree.HTML(resp.text)a = html.xpath("//div[@class='col-xs-12 col-sm-10 col-md-8 col-lg-6']//h3")[0].textif a=='您输入的密码错误, 请重新输入':password += 1else:print('correct password is: ',password)breakdef level_4():import _threadimport timepassword = [-1]*100sum_num = 0r_session = requests.Session()r_session.get('http://www.heibanke.com/lesson/crawler_ex03/pw_list/?page=1')# url = 'http://www.heibanke.com/lesson/crawler_ex03/pw_list/'url = 'http://www.heibanke.com/accounts/login/?next=/lesson/crawler_ex03/pw_list/?page='# url = 'http://www.heibanke.com/accounts/login/?next=/lesson/crawler_ex02/'r_session.cookies.get('csrftoken')def get_password(number):nonlocal sum_numnonlocal passwordurl_temp = url+str(number)print(url_temp)resp = r_session.post(url_temp, data={'username': 'emma', 'password': 'emmaczw', 'csrfmiddlewaretoken': r_session.cookies.get('csrftoken')})html = etree.HTML(resp.text)pass_list = html.xpath("//table[@class='table table-striped']//tr")[1:]for k in pass_list:ks = k.xpath(".//td")index = int(ks[0].text)num = int(ks[1].text)if password[index-1] == -1:print(sum_num)sum_num += 1password[index-1] = numwhile sum_num<=98:for i in range(1,14):_thread.start_new_thread(get_password, (i,))time.sleep(1)time.sleep(2)for i in range(len(password)):if password[i] == -1:password[i] = '{}'else:password[i] = str(password[i])print(''.join(password))def level_5():import pytesseractfrom PIL import Imagedef get_image(img_url):img = requests.get(img_url)if img.status_code == 200:print(type(img.content))with open('./img_temp.png','wb') as f:f.write(img.content)img = Image.open('./img_temp.png')img.show()img = input()# pytesseract.pytesseract.tesseract_cmd = "/anaconda3/lib/python3.6/site-packages/tesseract"# img = pytesseract.image_to_string(Image.open('./img_temp.png'), lang='eng',config='-psm 7')print(img)else:img = -1return imgurl_ = 'http://www.heibanke.com/lesson/crawler_ex04/'url = 'http://www.heibanke.com/accounts/login/?next=/lesson/crawler_ex04/'r_session = requests.Session()r_session.get(url)password = 14resp = r_session.post(url, data={'username': 'emma', 'password': 'emmaczw','csrfmiddlewaretoken': r_session.cookies.get('csrftoken')})while password<40:img_url = 'http://www.heibanke.com/' + etree.HTML(resp.text).xpath("//div[@class='form-group']//img")[0].get('src')number = get_image(img_url)print(img_url)print(img_url[-41:-1])if number == -1:print('没有找到图片')continueelse:resp = r_session.post(url_, data={'username': 'hi', 'password': password,'csrfmiddlewaretoken': r_session.cookies.get('csrftoken'),'captcha_1':number,'captcha_0':img_url[-41:-1]})a = etree.HTML(resp.text).xpath("//div[@class='col-xs-12 col-sm-10 col-md-8 col-lg-6']//h3")[0].textif a=='您输入的密码错误, 请重新输入':password += 1else:print(password)break

一个爬虫练习游戏:黑板课爬虫闯关相关推荐

  1. 黑板课爬虫闯关第一关

    之前也没有系统的学习过python,看其他源码的时候也是似懂非懂的看着理解意思.最近比较有空,就想更系统的学习一下,在知乎上看到大神推荐了一个Python爬虫闯关网站,便想试试. 下面是第一关的介绍, ...

  2. 小鸡拿着蚯蚓闯关的java游戏,饥饿蚯蚓大闯关游戏下载

    饥饿蚯蚓大闯关免费版是非常好玩的谜闯关类游戏,游戏关卡很丰富,都有一定的难度,玩家需要花费一些时间去尝试关卡并且此成功完成挑战.游戏玩法简单,华卖弄简约,喜欢的游戏玩家,快来下载吧! 饥饿蚯蚓大闯关手 ...

  3. 小鸡拿着蚯蚓闯关的java游戏,蚯蚓大闯关游戏下载|蚯蚓大闯关安卓版下载 v1.0.0 - 跑跑车安卓网...

    蚯蚓大闯关是一款很赞的益智游戏,作为一只蠕虫,陷入了陷阱里,你需要想尽办法努力的逃脱这里,十分的有趣好玩,不要错过哦. 游戏介绍 一只叫做汤姆的蠕虫想要逃离致命的陷阱,你需要帮助它完成数十个令人惊叹的 ...

  4. java老游戏拿着剑闯关打怪_一款老游戏拿着剑闯关打怪

    一款老拿着剑闯关打怪修改版(Swordigo)是一款玩法丰富的3D动作冒险角色扮演游戏.一款老拿着剑闯关打怪修改版采用的是正统的 RPG 模式,等级.技能.装备等标准的RPG要素均一应俱全. < ...

  5. 安卓3d游戏引擎_3D球闯关游戏-3D球闯关游戏安卓官方版预约 v1.2.5

    3D球闯关游戏是一款让人上瘾的球球跳跃闯关游戏,在音轨上不断跳跃,控制球球顺利到达终点,玩家需要在曼妙的背景音乐下找到自己的闯关节奏,大家只有找到了节奏才能更轻松的完成挑战,轻松点击球球就可以让它不断 ...

  6. 七月算法课程《python爬虫》第三课: 爬虫基础知识与简易爬虫实现

    这节课涉及到很多知识,CSS.XPath.Json.Dom和Sax.正则表达式.Selenium等.大家可以在W3School 和RUNOOB.COM 上了解下这方面的相关知识 CSS的几个网页使用示 ...

  7. 独一无二的《斗罗大陆》小游戏火爆上线,玩家闯关等你来~(等级有点儿难)

    前言 大家好!我是梨子同学! 希望大家多多支持我!哈哈 为了感谢每一个关注我的小可爱:

  8. Android 端 2D 横屏动作冒险类闯关游戏【100010436】

    Android 端 2D 横屏动作冒险类闯关游戏 摘要 随着闯关类游戏的玩法与数目的不断增加,本文所设计的一款名为<Wander In Color>的动作冒险闯关类游戏,将从一个新的角度入 ...

  9. 【神奇的Turtle库】海龟在手—天下我有:这款秘制“海龟闯关”小游戏值得拥有,强烈推荐哦~

    导语 哈喽!大家好!我是木木子~ 纵观之前的文章--我发现了一个特点,很多小伙伴儿都喜欢学习Turtle或游戏代码,没错吧~ 那今天这篇文章就是为这2方面的小伙伴儿精心准备滴!Turtle+游戏一起安 ...

最新文章

  1. [羊城杯 2020]GMC
  2. 10 分钟上手 Vim,常用命令大盘点
  3. Python类及面向对象编程【转】
  4. centos rpm安装mysql5.5_CentOS下以RPM方式安装MySQL5.5
  5. PHP如何解决网站大流量与高并发
  6. 深入解读Linux进程调度系列(3)——调度的执行过程
  7. 读书笔记《推荐系统实践》- 个性化推荐系统总结
  8. Microsoft SQL Server 2008 R2 软件安装
  9. 八大排序算法—源代码(c语言)
  10. UE4蓝图学习篇(一)
  11. Linux添加开机自启、开机自动运行命令、开机启动项的两种方法
  12. 淘宝搜索商品出现乱码是怎么回事?
  13. 2012冬-我想和生活谈谈
  14. 一些情况及问题的说明
  15. 直播带货app源码,实现直播的秒开和优化
  16. w3c搬运CSS念念碎
  17. 收好了,这些max工作效率的学习资源,赶紧用起来
  18. android 监测鼠标滑轮,android2.3 监控鼠标滑动事件
  19. c语言圆环杀人的题目,圆的周长的练习题[1]
  20. 小陈java学习笔记0817

热门文章

  1. NB-IoT 接入 5G 核心网丨边缘计算阅读周
  2. Win10删除右键菜单快捷键方法
  3. mt4怎么样修改服务器,mt4怎样修改服务器地址
  4. 【LeetCode】1823. 找出游戏的获胜者 Find the Winner of the Circular Game
  5. vue计算属性的get和set
  6. 你真的会使用github吗?
  7. 如何使用github(一)
  8. 【408】计算机统考科目知识整理
  9. SpringBoot利用Aop打印入参出参日志
  10. 框架相关核心要点详解