mit Ich versuche, Daten mithilfe von regulären Ausdrücken aus einer HTML-Datei zu erhalten, indem Sie den folgenden Code Implementierung:Quellcode von HTML-Datei python3.1 urllib.request
import urllib.request
def extract_words(wdict, urlname):
uf = urllib.request.urlopen(urlname)
text = uf.read()
print (text)
match = re.findall("<tr>\s*<td>([\w\s.;'(),-/]+)</td>\s+<td>([\w\s.,;'()-/]+)</td>\s*</tr>", text)
, die einen Fehler zurückgibt:
File "extract.py", line 33, in extract_words
match = re.findall("<tr>\s*<td>([\w\s.;'(),-/]+)</td>\s+<td>([\w\s.,;'()-/]+)</td>\s*</tr>", text)
File "/usr/lib/python3.1/re.py", line 192, in findall
return _compile(pattern, flags).findall(string)
TypeError: can't use a string pattern on a bytes-like object
bei der weiteren in den IDLE experimentieren, bemerkte ich, dass die uf.read() in der Tat den hTML-Quellcode gibt das erste Mal, dass ich es aufrufen. Aber dann gibt es a - b zurück. Gibt es eine Möglichkeit, dies zu umgehen?