我正在进行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
)。