第九关只有一幅图,上面有一些黑点。网页名字叫: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

最新文章

  1. python【4】-函数
  2. Java面试宝典答案详解与感悟(第二天)
  3. Myeclipse 加载ojdbc14.jar步骤
  4. js020-JSON
  5. ORACLE恢复数据
  6. 关于Java线程
  7. 浅试WebStorm配置Node.js开发环境
  8. 使用CLRMD编写一个自己的C#调试器
  9. Java并发编程--多线程中的join方法详解
  10. 重拾php---以及zend-studio 的使用快捷方式
  11. Dijkstra的双栈算术表达式求值算法
  12. Applet web端对文件的读取方式
  13. CSS3图片翻转动画技术详解
  14. web安全类
  15. 【转】使用Jasob混淆javascript代码
  16. WebForm 【Repeater】展示数据
  17. rem布局进阶
  18. 取消svn关联文件夹
  19. 根据python上下文管理,写一个在读文件内容前后自动打开关闭文件的程序
  20. HEOI2018翻盘记

热门文章

  1. Linux文件属性之文件权限介绍
  2. mysql sum聚合函数和if()函授的联合使用
  3. RNNs在股票价格预测的应用
  4. 49、android studio 使用技巧记录
  5. Python-S9-Day124-爬虫&微信
  6. Android数据储存之SQLiteDatabase SQLiteOpenHelper类的简单使用
  7. 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity
  8. 34条简单的SQL优化准则
  9. order by 对null的处理
  10. 第五篇:python基础_5