python - BeautifulSoup: AttributeError: 'str' 对象没有属性 'copy' 。在 Ubuntu 上工作,在 Windows 上失败

标签 python windows windows-xp beautifulsoup

我在使用 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/

相关文章:

python - 如何从日期时间戳列中每 5 分钟取数据框中一列的平均值?

python - PySpark - 对数据框中的一列求和并将结果作为 int 返回

python:积分分段函数

c++ - 使用并行线程查找所有加起来等于给定数字的组合

c# - 在给定 HWND 的情况下如何获取窗口的子窗口?

python - 用于 Windows XP 的 opencv

python - Pandas 中的菲尔娜

c++ - 将 void* 内容复制到 SigLib struct SLData_t*

用 win7 编写的 winforms 应用程序在 win xp 上看起来不同。为什么?

delphi - 以编程方式阻止 Windows 关闭