【问题标题】:Python BeautifulSoup Error BsObjPython BeautifulSoup 错误 BsObj
【发布时间】:2016-02-12 01:06:36
【问题描述】:

我刚买了一本书来教我如何抓取网站,但第一个例子对我不起作用 - 所以现在我有点不高兴我一开始就买了这本书,但我想试试看吧。

在 Python 3.5 中我的代码:

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://www.pythonscraping.com/pages/page1.html")
BsObj = BeautifulSoup(html.read())
print(bsObj.h1)*

这是我遇到的错误

Traceback(最近一次调用最后一次):

文件 "C:/Users/MyName/AppData/Local/Programs/Python/Python35-32/Lib/site-packages/bs4/test.py", 第 5 行,在 BsObj = BeautifulSoup(html.read())

文件 "C:\Users\MyName\AppData\Local\Programs\Python\Python35-32\lib\site-packages\bs4__init__.py", 第 153 行,在 init 中 builder = builder_class()

文件 "C:\Users\MyName\AppData\Local\Programs\Python\Python35-32\lib\site-packages\bs4\builder_htmlparser.py", 第 39 行,在 init 中 return super(HTMLParserTreeBuilder, self).init(*args, **kwargs)

TypeError: init() 得到了一个意外的关键字参数 'strict'

有什么想法会很有帮助吗? 提前致谢

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    我猜你抄录了书中的代码。 bsObj 的命名不一致,在print() 之后有一个不必要的*。改变这两个东西后它会起作用。

    还要注意read() 不是必需的,最好定义解析器,否则会收到警告。

    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    html = urlopen('http://www.pythonscraping.com/pages/page1.html')
    bsObj = BeautifulSoup(html, 'html.parser')
    print(bsObj.h1)
    

    【讨论】:

    • 谢谢 - 我复制了我的最新文件,我已经更改了拼写 - 我做了两个建议,但仍然收到错误。
    • 是的,我最初发布的错误相同。我必须为这本书下载 Python 35,并且之前使用的是 27——这导致了我无法修复或找到修复的问题,所以我卸载了这两个版本并重新加载了 35——我的直觉告诉我在安装 35 或 BS 时我做错了。感谢您的帮助
    • 运行 python -V 以检查正在使用的版本。
    • 当我在 IDLE Traceback 中键入时收到此消息(最近一次调用最后一次):文件“”,第 1 行,在 python -V NameError: name 'python'未定义
    • 给你 - 我的坏 - 3.5.1
    【解决方案2】:

    嘿,你只是在打印行中有一些拼写错误 BsObj 而不是 bsObj。

    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    
    html = urlopen("http://www.pythonscraping.com/pages/page1.html")
    BsObj = BeautifulSoup(html.read())
    print(BsObj.h1)
    

    【讨论】:

    • bsObj = BeautifulSoup(html, 'html.parser') print(bsObj.h1)
    • 这是我改变的:
    • 很高兴能帮上忙 ;)
    • 我仍然收到与最初相同的错误:我很抱歉
    • 嗯...我运行了我发布的上述代码,它工作得很好。你可以尝试打开 python shell 并输入 from bs4 import BeautifulSoup 来检查它是否有效?
    猜你喜欢
    • 2012-05-18
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2015-01-29
    • 2021-01-22
    相关资源
    最近更新 更多