【问题标题】:Pycharm can't import BeautifulsoupPycharm 无法导入 Beautifulsoup
【发布时间】:2016-12-23 07:54:01
【问题描述】:

操作系统:macOS Sierra Python 版本:安装 2.7.10,然后安装 3.5.2。 (默认设置 2.7.10 -> 任何人都知道如何卸载 2.7 或将默认设置从 python 2.7 更改为 python 3.5?) Pycharm:2016.2.3(项目解释器3.5.2)

我一直在开发基于 BeautifulSoup 库的网络爬虫,但有一条我永远无法摆脱的错误消息。我在 Pycharm 中安装了 beautifulsoup4 库,它甚至可以加载该库,但是当它遇到“find”功能时,它一直在回复错误消息,“NoneType' object has no attribute 'find”。

我附上了捕获的错误消息图像。

请帮我解决这个问题。

谢谢。 Error Message

【问题讨论】:

  • 是 AttributeError 原因不同的原因不是 Pycharm 的问题,BeautifulSoup 库已正确导入,这将是代码中的问题

标签: python python-2.7 python-3.x beautifulsoup web-crawler


【解决方案1】:

错误消息意味着您的对象title_section 为空,这是您提出问题的真正原因,而不是无法导入的Beautifulsoup

此外,您的网页http://52.68.130.249/textboard/ 没有包含title_section 类的标签div,那么您的title_section 为空,从而导致错误消息。

【讨论】:

  • 非常感谢!!我只是仔细校对并修正了一些错别字……终于成功了!
【解决方案2】:

所以查看您的页面,问题在于您正在寻找一个具有“title_section”类的 div,但实际的 div 名为“title-section”。下划线应该是破折号。

如果BeautifulSoup 找不到任何东西,它将返回None

title_section = content_table.find('div', class_='title_section')

因为没有带有title_section 类的div,BeautifulSoup 的find 方法然后返回None。因此,您的调用将 Python 变量 title_section 设置为 None。然后当你打电话时:

title_section.find('h1')

您正在调用None.find('h1'),Python 解释器告诉您NoneType 对象没有属性find。

如果你把调用改为content_table.find('div', class_='title-section'),它会返回一个BeautifulSoup对象,你可以调用find

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 2021-03-04
    相关资源
    最近更新 更多