Python Challenge 第九关
第九关只有一幅图,上面有一些黑点。网页名字叫: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 Challenge 第九关的更多相关文章
- Python Challenge 第一关
偶然在网上看到这个,PYTHON CHALLENGE,利用Python语言闯关,觉得挺有意思,就记录一下. 第0关应该算个入口吧,试了好几次才试出来,没什么代码就不写了.计算一个结果出来就行. 第一关 ...
- The Python Challenge 闯关笔记
The Python Challenge : http://www.pythonchallenge.com/ Level 0: 看提示图片中为2**38,计算值为274877906944. Hint: ...
- the python challenge闯关记录(9-16)
9 第九关 是一张图,上面有很多的黑点,查看网页源代码发现了上一关的提示: 还发现了一大串的数字 感觉又是一个使用PIL库进行图像处理的题,百度后知道要将这些点连接起来并重新画图.但是不能在原始图上修 ...
- the python challenge闯关记录(0-8)
0 第零关 2**38 = 274877906944 下一关的url:http://www.pythonchallenge.com/pc/def/274877906944.html 1 第一关 移位计 ...
- Python Challenge 第二关
第二关和第一关一样,还是一幅图和一行提示.提示说的是: recognize the characters. maybe they are in the book, but MAYBE they are ...
- python challenge第1关--NoteBook上的“乱码”
在 python challenge第0关中已经得到第1关的地址了: http://www.pythonchallenge.com/pc/def/map.html 一.观察地址栏和标签: What a ...
- Python Challenge 第八关
这一关有一个蜜蜂的图片和一句提示:Where is the missing link? 这页面上乱点,在图片中蜜蜂身上还真点出一个链接,让输入用户名和密码,于是就去看源代码.果然,最下面有两行注释: ...
- Python Challenge 过关心得(0)
最近开始用Openerp进行开发,在python语言本身上并没有什么太大的进展,于是决定利用空闲时间做一点python练习. 最终找到了这款叫做Python Challenge(http://www. ...
- The Python Challenge 谜题全解(持续更新)
Python Challenge(0-2) The Python Challengehttp://www.pythonchallenge.com/ 是个很有意思的网站,可以磨练使用python的技巧, ...
随机推荐
- Missian指南三:创建一个Missian服务器(使用spring)
在使用Missian时,spring是可选的,但是作者本人强烈推荐和Spring配合使用.Spring是一个伟大的项目,并且它不会对程序在运行时的效率带来任何损耗. Missian在服务器端依赖与Mi ...
- Python基础函数必学
我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73.1 ...
- Neon Lights in Hong Kong【香港霓虹灯】
Neon Lights in Hong Kong Neon is to Hong Kong as red phone booths are to London and fog is to San Fr ...
- POJ 3320 尺取法(基础题)
Jessica's Reading Problem Description Jessica's a very lovely girl wooed by lots of boys. Recently s ...
- Python登录人人网并抓取新鲜事
from sgmllib import SGMLParser import sys,urllib2,urllib,cookielib class spider(SGMLParser): def ...
- 消息框模块-tkinter
import tkinter.messagebox # 这个是消息框,对话框的关键from tkinter import * error_fp_list = [[973.45, '河北卡卡汽车贸易有限 ...
- heap&stack的区别
1. heap (堆)是一个可动态申请的内存空间,一般所有创建的对象和数组都放在这里.stack (栈)是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量.stack (栈)的空间小 ...
- JVM内存管理:深入Java内存区域与OOM
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝 ...
- 【Climbing Stairs】cpp
题目: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either cl ...
- apple键盘中的Tilde / back-tick key can't work
使用波浪键的时候会输出>或<. 解决办法:http://atodorov.org/blog/2015/04/30/fixing-tilde-and-function-keys-mappin ...