我在使用 BeautifulSoup 时遇到一个奇怪的错误。
这是我正在运行的代码片段:
while True:
listing_soup = soupify(urlget(page_url))
for i in listing_soup.findAll('div', 'searchResultContent'):
# do some stuff ...
这是抛出的异常:
Traceback (most recent call last):
File "C:\path\to\script.py", line 71
6, in <module>
for i in listing_soup.findAll('div', 'searchResultContent'):
File "c:\python27\BeautifulSoup.py", line 612, in findAll
return self._findAll(name, attrs, text, limit, generator, **kwargs)
File "c:\python27\BeautifulSoup.py", line 275, in _findAll
strainer = SoupStrainer(name, attrs, text, **kwargs)
File "c:\python27\BeautifulSoup.py", line 660, in __init__
self.attrs=attrs.copy()
AttributeError: 'str' object has no attribute 'copy'
我在 Windows XP Professional 上运行 Python 2.7.3。这个脚本在 Ubuntu Linux 上运行良好。
注意:
我希望来自网络的数据是 UTF,因此 python 脚本以以下行开头:
#coding=utf-8
最佳答案
从行号来看,您使用的是 Beautiful Soup 3.0.0,它没有您尝试使用的“按 CSS 类搜索”快捷方式(它在 3.0.1 中重新引入)。更重要的是,您使用的是五年前的软件版本。我推荐Beautiful Soup 4对于所有新项目。
很可能您在 Ubuntu 上看不到问题,因为您的 Ubuntu 安装运行的是更新版本的 Beautiful Soup。
关于python - BeautifulSoup: AttributeError: 'str' 对象没有属性 'copy' 。在 Ubuntu 上工作,在 Windows 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11837515/