脚本宝典收集整理的这篇文章主要介绍了

Strategy for Python Challenge(02)

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

关卡地址:http://www.pythonchallenge.com/pc/def/ocr.html点击前往
这一关卡信息同样非常精简,只有短短的一句话,然后其他信息都没有什么用,真心用心良苦(能说这个作者操蛋吗)。不多说了,话语中提到了
页面源码,那我们就看看源码有什么。
整个源码都是html的一些标签没什么特别,知道有一段注释,应该答案就在这段信息里面了,但是观察了很久,没有什么头绪,来看看听雨轩点击前往的讲解,原来是在这段注释中寻找英文字母,好吧作者你赢了。
思路是:用 urllib.request.open 获取链接,用其read()函数读取 html 源码,再用正则提取注释的内容,在提取之后的内容寻找内容当中的字母就是我们的结果。
代码如下:

# -*- coding: UTF-8 -*-
import urllib.request
import re
import string

url = urllib.request.urlopen('http://www.pythonchallenge.com/pc/def/ocr.html')
page = url.read().decode('utf8') # 在Python中urlopen返回的response是byte类,需要转成string类
pattern = re.compile(r'<!--[^>]*?-->') #  注释是在<!-- 和-->,这里使用?是想最短匹配,不过好像不加也没有影响
m = re.findall(pattern, page)
comment = m[1] # m[0]只是提示语,略去
out = list(filter(lambda x: x in string.ascii_letters, comment))
print(''.join(out))

在Python3中filter函数不再直接返回列表,而是返回一个生成函数,需要再次list函数来处理。

总结

以上是脚本宝典为你收集整理的

Strategy for Python Challenge(02)

全部内容,希望文章能够帮你解决

Strategy for Python Challenge(02)

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过