2017-07-14 1 views
-1

Hey Leute, was ich versuche zu tun ist ziemlich einfach, ich möchte nur den Quellcode einer Website und prüfen, ob ein Text darin vorhanden ist. Hier ist, was ich habe bisher getan haben:Urllib in python 3

link = urllib.request.urlopen("http://someurl.com") 
x = link.read() 

if "prefix" in x: 
    print("yes") 
else: 
    print("no") 

ich den Website-Code zu bekommen, und ich kann es ausdrucken und alles ist schön aber wenn ich zu überprüfen, ich versuche, wenn ein „Präfix“ Text innerhalb der Source-Code existieren i einen Fehler:

TypeError: a bytes-like object is required, not 'str'

+0

Es gibt eine Byte-Zeichenfolge zurück, die Sie dekodieren müssen. –

Antwort

0

urllib.read() gibt den Inhalt als Byte-String. Sie müssen dieses Bytestring dekodieren seinen Inhalt analysieren:

x_decoded = str(x, 'latin-1') 

Alternativ, wenn Sie nicht entschlüsseln möchten, können Sie Ihre Suche Zeichenfolge in ein Byte-String konvertieren können b zu wörtlichen durch das Voranstellen:

if b"prefix" in x: 
    ... 

Das funktioniert auch.