StevenPZChan
StevenPZChan
1 min read

Categories

Tags

继续挑战,越来越有趣了


第29题地址guido.html

  • whoisit.jpg
  • 网页标题是silence!,题目内容为空,源码里面没有隐藏内容,但后面有一堆的空行。

图片里面有好多元素,主体一个用眼镜和杯子等组合成的面罩形状,旁边是一个啤酒瓶和一个画着鸡的不知道什么东西。
而标题是silence,应该对应源码后面那些空行吧。
我们仔细看下空行,发现每一行的长度是不一样的!所以每一行的空格数对应着字节码:

import re
import requests

with requests.Session() as sess:
    sess.auth = ('repeat', 'switch')
    response = sess.get('http://www.pythonchallenge.com/pc/ring/guido.html').text
    silence = bytes(len(line) for line in response.splitlines() if re.match(r'^( )*$', line))
print(silence)
b'BZh91AY&SY\xd9\xc2p\x18\x00\x00\x04\x9d\x80`\x80\x00\x00\x80 ./\x9c  \x001L\x98\x99\x06F\x112hd\x06jUd\xb9\x9e\xc6\x18\xc5\x92RH\xe5Z"\x01\xba\xa7\x80\x7f\x8b\xb9"\x9c(Hl\xe18\x0c\x00'

是以BZh开头的bzip2压缩格式:

from bz2 import decompress

print(decompress(silence).decode())
Isn't it clear? I am yankeedoodle!

图片名字叫whoisit.jpg,也就是说问那些空行是什么东西。好了,打开链接到yankeedoodle.html,来到了下一题。 顺便科普下yankeedoodle洋基曲

《洋基歌》(Yankee Doodle)是一首美国传统歌曲,其起源可追溯至美国七年战争时期。今天这首歌在美国通常被当作爱国歌曲,它同时还是康乃狄克州的州歌。
这首歌的真正源头仍不清楚。常见的说法认为这首歌是在美国独立战争以前英军用以嘲笑殖民地居民粗俗的衣着和举止的,而“洋基”一词是对参加法印战争的新英格兰人的轻蔑之词。这首歌的曲调很可能来自与儿歌《露茜的钱袋》(Lucy Locket),其中一个版本的歌词可能来自于一名英国外科医生理查德·沙克伯勒(Richard Shuckburgh)。虽然这首歌的歌词带有贬义,然而独立战争期间美军却采用《洋基歌》作为他们自己的歌以反讽敌军,表明他们对自己朴素的家纺衣着和毫不矫揉造作的举止感到自豪。洋基歌的歌词有许多不同版本。多年来,这首歌在美国一直被当作非正式的国歌,也是最受欢迎的儿歌。在各类电影,电视和动画片中时常能听见这首歌曲。

From wikipedia.org

所以这是一首某种性质的儿歌,也就跟这题的图片对应上了。

总结:这一题需要一些观察力足矣。

本题代码地址29_guido.ipynb