Python Challenge 第九关
2024-08-31 21:58:59
第九关只有一幅图,上面有一些黑点。网页名字叫:connect the dots。可能是要把这些点连起来。
查看源代码,果然有两个整数集合 first 和 second。并且有个提示:first+second=?。这两个集合很可能就是点的坐标。
第一步,把这两个集合提取出来。本来我想跟以前一样,用 urllib 模拟登陆然后用正则表达式提取。结果发现需要输入用户名和密码(上一关得到的)。用 FireFox 分析了半天没得到 POST 消息的格式,就放弃了,直接把页面下载下来,然后打开 htm 文件来得到结果:
fobj = open(r'C:\Users\Leo\Desktop\connect the dots.htm')
page = fobj.read()
fobj.close()
transTable = string.maketrans('','')
delSym = '\n'
firstRes = re.findall('first:\s+(.*)\s+second', page, re.S)[0].translate(transTable, delSym).split(',')
firstList = [int(i) for i in firstRes]
secondRes = re.findall('second:\s+(.*)\s+-->', page, re.S)[0].translate(transTable, delSym).split(',')
secondList = [int(i) for i in secondRes]
得到两个列表后,就去查询 PIL 库有什么函数可以画线,得知 ImageDraw 模块的 line() 方法可以画线,而且输入参数刚好是列表,就试了一下:
img = Image.open(r'C:\Users\Leo\Desktop\good.jpg')
draw = ImageDraw.Draw(img)
draw.line(firstList, fill = '#FF0000')
draw.line(secondList, fill = '#FF0000')
img.show()
马上得到了结果:
可以看到图上面出现了一头牛,想一下牛的单词,立马想到芝加哥公牛队,就把 url 改为 bull,进入下一关:http://www.pythonchallenge.com/pc/return/bull.html
最新文章
- python【4】-函数
- Java面试宝典答案详解与感悟(第二天)
- Myeclipse 加载ojdbc14.jar步骤
- js020-JSON
- ORACLE恢复数据
- 关于Java线程
- 浅试WebStorm配置Node.js开发环境
- 使用CLRMD编写一个自己的C#调试器
- Java并发编程--多线程中的join方法详解
- 重拾php---以及zend-studio 的使用快捷方式
- Dijkstra的双栈算术表达式求值算法
- Applet web端对文件的读取方式
- CSS3图片翻转动画技术详解
- web安全类
- 【转】使用Jasob混淆javascript代码
- WebForm 【Repeater】展示数据
- rem布局进阶
- 取消svn关联文件夹
- 根据python上下文管理,写一个在读文件内容前后自动打开关闭文件的程序
- HEOI2018翻盘记