2

编写一个python程序,我在使用该urllib.urlopen函数时遇到了这个错误。

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)
4

4 回答 4

6

urlopen(url) 返回一个类似文件的对象。要获取字符串内容,请尝试

CPs = CPs + urllib.urlopen(url).read()
于 2009-11-02T12:18:54.927 回答
2

urllib.urlopen 不返回字符串,它返回一个对象
文档

If all went well, a file-like object is returned.
于 2009-11-02T12:19:08.280 回答
1

问题出在这一行:CPs = CPs + urllib.urlopen(url)我假设CPs是一个字符串,但是urllib.urlopen(url)返回一个像对象一样的文件。

如果你想加入文件的内容,url那么CPs你需要做这样的事情CPs = CPs + urllib.urlopen(url).read()

于 2009-11-02T12:21:41.020 回答
0

什么是CP?它看起来像一个字符串。urlopen 将返回一个类文件对象的实例,而不是一个字符串。请参阅 - http://docs.python.org/library/urllib.html

该错误不是从 urlopen 引发的,而是因为您试图将字符串与对象实例连接起来。

于 2009-11-02T12:23:45.263 回答