Guten Tag,
Python wirft mir momentan einen Fehler zu, den ich leider nicht zu verbessern weiß.
Code:
def getProductCode(content):
code = "<div class=\"listview__image-wrapper\">\\n<a\\nhref="
i = content.find(code) + len(code) + 1
iStr = content[i:len(content)]
return iStr[0:(iStr.find("\""))]
Fehler:
File "pricecompare.py", line 9, in getProductCode
i = content.find(code) + len(code) + 1
TypeError: argument should be integer or bytes-like object, not 'str'
Entdeckt jemand den Fehler?
Danke im Voraus!
TypeError in find() Methode
content ist offenbar ein Bytes-Objekt. Dieses musst du vorher in einen String umwandeln, oder eben - wie die Fehlermeldung sagt - Bytes als Argument übergeben. Abgesehen davon verarbeitet man HTML in Python nicht so, sondern mit einem geeigneten Parser. BeautifulSoup ist da sehr beliebt und dementsprechend wäre dann auch die Aussichten auf entsprechenden Support...
@snafu: in keiner Programmiersprache sollte man HTML so verarbeiten.
Variablennamen und Funktionen schreibt man komplett klein. Was soll das i bei iStr bedeuten? Benutze keine kryptischen Buchstabenkombinationen oder Abkürzungen, das macht das verstehen des Codes nur unnötig kompliziert. "\\n" wird wohl kaum in `content` vorkommen.
Zum Verarbeiten von HTML benutzt man einen HTML-Parser. BeautifulSoup hat sich als der Standard etabliert.
Sonst würde man auch nicht mit Indizes herumstückeln, sondern z.B. str.partition verwenden.
Variablennamen und Funktionen schreibt man komplett klein. Was soll das i bei iStr bedeuten? Benutze keine kryptischen Buchstabenkombinationen oder Abkürzungen, das macht das verstehen des Codes nur unnötig kompliziert. "\\n" wird wohl kaum in `content` vorkommen.
Zum Verarbeiten von HTML benutzt man einen HTML-Parser. BeautifulSoup hat sich als der Standard etabliert.
Sonst würde man auch nicht mit Indizes herumstückeln, sondern z.B. str.partition verwenden.
Danke!snafu hat geschrieben: Sonntag 11. Oktober 2020, 16:57 content ist offenbar ein Bytes-Objekt. Dieses musst du vorher in einen String umwandeln, oder eben - wie die Fehlermeldung sagt - Bytes als Argument übergeben. Abgesehen davon verarbeitet man HTML in Python nicht so, sondern mit einem geeigneten Parser. BeautifulSoup ist da sehr beliebt und dementsprechend wäre dann auch die Aussichten auf entsprechenden Support...