Frage

Schreiben ein Python-Programm, und ich kam mit diesem Fehler, während der urllib.urlopen Funktion.

Traceback (most recent call last):
File "ChurchScraper.py", line 58, in <module>
html = GetAllChurchPages()
File "ChurchScraper.py", line 48, in GetAllChurchPages
CPs = CPs + urllib.urlopen(url)
TypeError: cannot concatenate 'str' and 'instance' objects


 url = 'http://website.com/index.php?cID=' + str(cID)
        CPs = CPs + urllib.urlopen(url)
War es hilfreich?

Lösung

urlopen (url) liefert eine dateiähnliche Objekt. Um die Zeichenfolge Inhalte zu erhalten, versuchen

CPs = CPs + urllib.urlopen(url).read()

Andere Tipps

urllib.urllopen nicht einen String zurückgibt, es gibt ein Objekt
doc

If all went well, a file-like object is returned.

Das Problem ist in dieser Zeile: CPs = CPs + urllib.urlopen(url) Ich gehe davon aus CPs eine Zeichenfolge jedoch urllib.urlopen(url) ist eine Datei wie Objekt zurückgibt

.

Wenn Sie den Inhalt der Datei in url mit CPs anschließen möchten, dann müssen Sie so etwas wie dies zu tun. CPs = CPs + urllib.urlopen(url).read()

Was ist CPs? Es sieht aus wie es eine Zeichenfolge ist. urlopen wird eine Instanz einer Datei ähnlichen Objekt zurückgeben, kein String. Siehe - http://docs.python.org/library/urllib.html .

Der Fehler wird nicht vom urlopen geworfen, sondern weil Sie versuchen, eine Zeichenfolge mit einer Objektinstanz verketten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top