作者:hacker发布时间:2022-09-01分类:邮箱破解浏览:129评论:1
作者 | 苏克1900
责编 | 胡巍巍
本文经授权转载自高级农民工
最近在网上看到一个非常有意思的 Python 游戏 通关网站,一共有 33 关,每一关都需要利用 Python 知识解题找到答案,然后进入下一关。
很考验对 Python 的综合掌握能力,比如有的闯关需要用到正则表达式,有的要用到爬虫。
我们平常学 Python 都是按章节顺序、包或者模块来学,容易前学后忘。正好可以拿这个网站来综合测试一下对 Python 的掌握情况,以便查缺补漏。
来说说这个网站怎么玩。
mark
这是网站主页面,很有 历史 感对吧,诞生了已有十几年了。但千万不要因为看着像老古董而小瞧它。
mark
我们来玩玩看,点击「get challenged」开始挑战。
第 0 关是 Warming up 热身环节:
这一关要求是修改 URL 链接,给的提示是电脑上的数学表达式:2 的 38 次方,所以大概就是需要计算出数值,然后修改url 进入下一关。
所以这关就是考 Python 的基本数值运算,你知道怎么算么?
打开 Python 自带终端,一行代码就能计算出结果:
mark
把原链接中的 0 替换为 274877906944 回车就会进入下一关:
mark
游戏 这就正式开始了。图片中的笔记本给了三组字母,很容易发现规律:前面的字母往后移动两位就是后面的字母。
那么需要做的就是根据这个规律把下面的提示字符串,做位移解密得到真正的句子含义:
这道题考察字符串编码和 for 循环相关知识,代码实现如下:
得到结果:
作者很风趣,当然不能手动去一个推算了,推荐用 string.maketrans 这个方法解决,我们上面采取的是比较直接的方法,官方给出了更为精简的方法:
然后把 url 中的 map 改为ocr回车就来到了第 2 关:
mark
作者接着说过关的提示可能在书里(当然不可能了)也可能在网页源代码里。那就右键查看源代码往下拉看到绿色区域,果然找到了问题:
mark
意思就是:要在下面这一大串字符里找到出现次数最少的几个字符
考察了这么几个知识点:
如果是你,你会怎么做?
来看下,十行代码快速实现:
首先,用 Requests 请求网页然后用正则提取出字符串,接着 for 循环计算每个字符出现的次数。
可以看到出现次数最少的就是最后几个字符,合起来是「equality」,替换 url 字符就闯过过了第 2 关进入下一关继续挑战。是不是有点意思?
后面每一关都需要用到相关的 Python 技巧解决,比如第 4 关:
mark
这一关作者弄了个小恶作剧,需要手动输入数值到 url 中然后回车,你以为这样就完了么?并没有它有会不断重复弹出新的数值让你输入,貌似无穷尽。
所以,这一关肯定不能采取手动输入的方法闯关,自然要用到 Python 了。要实现自动填充修改 url 回车跳转到新 url,循环直到网页再也无法跳转为止这一功能。
如果是你,你会怎么做?
其实,一段简单的爬虫加正则就能搞定。思路很简单,把每次网页中的数值提取出来替换成新的 url 再请求网页,循环下去,代码实现如下:
输出结果如下:
可以看到,最终循环了 85 次找到了最后一个数字16044,输入到 url 中就闯关成功。
33 关既有趣又能锻炼使用 Python 解决问题的技巧,感兴趣的话去玩玩看。
网址:
如果遇到不会做的题,可以在这里找到参考答案:
中参考文教程:
官方参考教程:
作为码一代,想教码二代却无从下手:
听说少儿编程很火,可它有哪些好处呢?
孩子多大开始学习比较好呢?又该如何学习呢?
最新的编程教育政策又有哪些呢?
下面给大家介绍CSDN新成员: 极客宝宝(ID: geek_baby)
热 文 推 荐
☞“年薪百万程序员遭亲妈拍卖”刚刚刷爆朋友圈!网友:是我本人!
☞ 真壕!腾讯员工平均月薪 7 万!
☞ 高级!程序员用递归来撩妹?!| 程序员有话说
☞厉害!女学生偷师男子学校,变身区块链开发工程师
☞这家公司的 IoT ,你可千万别低估!
☞深扒! 币安被盗的7074.18枚比特币去哪了?
☞如何使用「番茄法」高效的写算法题?
☞面对互联网一线大厂,这些技术你需要了解!
☞刺激!华为程序员年薪200万 ?真相让人心酸!
你点的每个“在看”,我都认真当成了喜欢
我们可以这幺理解:爬虫是用来批量获得网页上的公开信息的,也就是前端显示的数据信息。因此,既然本身就是公开信息,其实就像浏览器一样,浏览器解析并显示了页面内容,爬虫也是一样,只不过爬虫会批量下载而已,所以是合法的。不合法的情况就是配合爬虫,利用黑客技术攻击网站后台,窃取后台数据(比如用户数据等)。
简单来讲,爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。
你可以简单地想象:每个爬虫都是你的「分身」。就像孙悟空拔了一撮汗毛,吹出一堆猴子一样。
你每天使用的百度,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,然后化好淡妆排着小队等你来检索。
抢票软件,就相当于撒出去无数个分身,每一个分身都帮助你不断刷新 12306 网站的火车余票。一旦发现有票,就马上拍下来,然后对你喊:土豪快来付款。
那么,像这样的爬虫技术一旦被用来作恶有多可怕呢?
正好在上周末,一位黑客盆友御风神秘兮兮地给我发来一份《中国爬虫图鉴》,这哥们在腾讯云鼎实验室主要负责加班,顺便和同事们开发了很多黑科技。比如他们搞了一个威胁情报系统,号称能探测到全世界的「爬虫」都在做什么。
我吹着口哨打开《图鉴》,但一分钟以后,我整个人都不好了。
我看到了另一个「平行世界」:
就在我们身边的网络上,已经密密麻麻爬满了各种网络爬虫,它们善恶不同,各怀心思。而越是每个人切身利益所在的地方,就越是爬满了爬虫。
看到最后,我发现这哪里是《中国爬虫图鉴》,这分明是一份《中国焦虑图鉴》。
我们今天要说的,就和这些 App 有关。
一、爬虫的「骚操作」
爬虫也分善恶。
像谷歌这样的搜索引擎爬虫,每隔几天对全网的网页扫一遍,供大家查阅,各个被扫的网站大都很开心。这种就被定义为「善意爬虫」。
但是,像抢票软件这样的爬虫,对着 12306 每秒钟恨不得撸几万次。铁总并不觉得很开心。这种就被定义为「恶意爬虫」。(注意,抢票的你觉得开心没用,被扫描的网站觉得不开心,它就是恶意的。)
给你看一张图:
这张图里显示的,就是各行各业被爬「叨扰」的比例。(注意,这张图显示是全世界,不是全中国。)而每一个色块背后,都是一条真实而强大的利益链条。
接下来,中哥就给你科普一下里面的骚操作。
1、排名第一的是出行
出行行业中爬虫的占比最高(20.87%)。在出行的爬虫中,有 89.02% 的流量都是冲着 12306 去的。这不意外,全中国卖火车票的独此一家别无分号。
你还记得当年 12306 上线王珞丹和白百何的「史上最坑图片验证码」么?
这些东西不是为了故意难为老老实实卖票的人的,而恰恰是为了阻止爬虫(也就是抢票软件)的点击。刚才说了,爬虫只会简单地机械点击,它不认识白百何,所以很大一部分爬虫就被挡在了门外。
你可能会说,不对啊,我现在还可以用抢票软件抢到票啊。
没错。抢票软件也不是吃素的。它们在和铁总搞「对抗」。
有一种东西叫作「打码平台」,你可以了解一下。
打码平台雇用了很多叔叔阿姨,他们在电脑屏幕前不做别的事情,专门帮人识别验证码。那边抢票软件遇到了验证码,系统就会自动把这些验证码传到叔叔阿姨面前,他们手工选好哪个是白百何哪个是王珞丹,然后再把结果传回去。总共的过程用不了几秒时间。
当然,这样的打码平台还有记忆功能。如果叔叔阿姨已经标记了这张图是「锅铲」,那么下次这张图片再出现的时候,系统就直接判断它是「锅铲」。时间一长,12306 系统里的图片就被标记完了,机器自己都能认识,叔叔阿姨都可以坐在一边斗地主了。
你可能会问:为什么 12306 这么抠呢?它大方地让爬虫随意爬会死吗?
答:会死。
你知道每年过年之前,12306 被点成什么样了吗?公开数据是这么说的:「最高峰时 1 天内页面浏览量达 813.4 亿次,1 小时最高点击量 59.3 亿次,平均每秒 164.8 万次。」这还是加上验证码防护之后的数据。可想而知被拦截在外面的爬虫还有多少。
况且这里还没有讨论,被抢票软件把票抢走,对我们父母那样的不会抢票的人来说,是不是公平呢?
铁路被爬虫「点击」成这样已经够惨了,但它还有个难兄难弟,就是航空。
而航空里,被搞得最惨的不是国航,不是海航,也不是东航。而是亚航。
航空类爬虫的分布比例。
很多人可能都没坐过亚洲航空。这是一家马来西亚的廉价航空公司,航线基本都是从中国各地飞往东南亚的旅游胜地,飞机上连矿泉水都得自费买,是屌丝穷 X 度假之首选。
为什么爬虫这么青睐亚航呢?因为它便宜。确切地说,因为它经常放出便宜的票。
本来,亚航的初衷只是随机放出一些便宜的票来吸引游客,但这里面黄牛党是有利可图的。
据我所知,他们是这样玩的:
技术宅黄牛党们利用爬虫,不断刷新亚航的票务接口,一旦出现便宜的票,不管三七二十一先拍下来再说。
亚航有规定,你拍下来半小时(具体时间记不清了)不付款票就自动回到票池,继续卖。但是黄牛党们在爬虫脚本里写好了精确的时间,到了半小时,一毫秒都不多,他又把票拍下来,如此循环。直到有人从黄牛党这里定了这个票,黄牛党就接着利用程序,在亚航系统里放弃这张票,然后 0.00001 秒之后,就帮你用你的名字预定了这张票。
「我是中间商,我就要赚差价!」这波骚操作,堪称完美。
2、排名第二的是社交
社交的爬虫重灾区,就是你们喜闻乐见的微博。
给你看张图:
这是爬虫经常光顾的微博地址。
近些日子,一则“淘宝12亿条客户信息遭爬取,黑客非法获利34万”的问题,引发了广大网友们的热议,在网上闹的沸沸扬扬。那么,客户的信息是如何泄漏的呢?这个黑客使用了python的爬虫技术,爬出了淘宝的信息。然后这个黑客把这些拿到的信息,都拿去售卖给了其他需要这些信息的公司,各有所需。这些信息泄漏之后,轻则让我们收到更多的垃圾信息和骚扰电话,重则被骗取钱财。那么具体的情况是什么呢?我来给大家分享一下我的看法。
一.黑客爬取信息
这些黑客是通过python这个语言,利用了爬虫的功能,爬取了淘宝的12亿条客户的信息。不得不说,这个黑客的技术也是确实很硬,能够把淘宝这样的大公司的信息给爬取出来。
二.黑客售卖信息
爬取到了12亿条信息之后,黑客是售卖了这12亿条的淘宝客户的信息。成功的盈利了34万的一个金额,也是非常的多了。
三.信息泄漏的后果
信息邪路的后果,有轻有重。轻则是受到更多的垃圾短息,已经骚扰电话。重则是可能银行卡会被盗刷,掌握了自己的关键信息,导致自己更加的容易受骗等等。
以上就是我对于这个问题所发表的看法,纯属个人观点,仅供参考。大家有什么不同的看法都可以在评论区留言,大家一起讨论一下。大家看完,记得点赞,加关注哦。
1、把python的scripts文件夹加入到环境变量里面 2、运行cmd 3、cd XXX切到程序所在文件夹 4、输入python xxx.py
标签:黑客爬虫闯关
已有1位网友发表了看法:
访客 评论于 2022-09-01 23:35:21 回复
被标记完了,机器自己都能认识,叔叔阿姨都可以坐在一边斗地主了。你可能会问:为什么 12306 这么抠呢?它大方地让爬虫随意爬会死吗?答:会死。你知道每年过年之前,12306 被点成什么样了吗?公开数据是这么说的:「最高峰时 1 天