我正在进行python挑战并尝试使自己熟悉python,因此在不查看答案的情况下,我尝试使用python的url阅读器读取html,然后找到所需的字母。但是在下面的代码中,我得到了一个错误,该错误原本是python 3 urllib.request,但是在解决之后,我得到了一个新错误:



现在我尝试在Google上查找此错误,但是我所得到的只是关于json的信息,我不需要吗?我的python不够强,所以也许我做错了吗?

#Question 2 - find rare characters

import re
import urllib.request

data = urllib.request.urlopen("http://www.pythonchallenge.com/pc/def/ocr.html")
mess = data.read()
messarr = mess.split("--")

print ("".join(re.findall("[A-Za-z]", data)))

#Question 3 - Find characters in list

page = urllib.request.urlopen("http://www.pythonchallenge.com/pc/def/equality.html")
mess = page.read()
messarr = mess.split("--")
print ("".join(re.findall("[^A-Z]+[A-Z]{3}([a-z])[A-Z]{3}[^A-Z]+", page)))

最佳答案

问题在于您正在混合字节和文本字符串。您应该将数据解码为文本字符串(unicode),例如data.decode('utf-8'),或将字节对象用于模式,例如re.findall(b"[A-Za-z]")(注意字符串文字之前的前导b)。

10-04 15:06