【问题标题】:Error nonetype object has no attribute text while scraping via beautiful soup 4 python错误nonetype object has no attribute text while scraping via beautiful soup 4 python
【发布时间】:2016-11-28 05:49:00
【问题描述】:

我正在尝试使用 python webscraping 在 python 中使用美丽的汤来提取一些信息。这是部分。

<div class="result-value" data-reactid=".0.0.3.0.0.3.$0.1.1">
<span data-reactid=".0.0.3.0.0.3.$0.1.1.0">751</span>
<span class="result-value-unit" data-reactid=".0.0.3.0.0.3.$0.1.1.1">KB</span>
</div


Snap: https://www.dropbox.com/s/d349tb3f22o0wyf/4.png?dl=0

我正在使用的代码是这样的

Sizeofweb=""
try:
    Sizeofweb= soup.find('span', {'data-reactid': ".0.0.3.0.0.3.$0.1.1.0"}).text
    print Sizeofweb
except StandardError as e:
    converted_date="Error was {0}".format(e)
    print converted_date

错误

nonetype object has no attribute text

我已经尝试过了,但没有奏效。我哪里错了?

【问题讨论】:

    标签: python python-2.7 web-scraping beautifulsoup


    【解决方案1】:

    此代码适用于我 -

    from bs4 import BeautifulSoup
    
    html_str = """
    <div class="result-value" data-reactid=".0.0.3.0.0.3.$0.1.1">
    <span data-reactid=".0.0.3.0.0.3.$0.1.1.0">751</span>
    <span class="result-value-unit" data-reactid=".0.0.3.0.0.3.$0.1.1.1">KB</span>
    </div>
    """
    
    soup = BeautifulSoup(html_str,"lxml")
    
    Sizeofweb = soup.find('span', {'data-reactid': ".0.0.3.0.0.3.$0.1.1.0"}).text
    
    print Sizeofweb
    

    输出

    751
    

    我注意到最后一个 div 标签 close 缺少右尖括号 - ">"

    不知道你是怎么做到的,但这对我有用...

    【讨论】:

    • 这可能与您使用“lxml”解析器有关。不同的解析器会以不同的方式处理 HTML 结构,并且一个解析器可能比另一个更好地处理缺少的结束标记。 BeautifulSoup 的文档强调了不同解析器之间的差异 - crummy.com/software/BeautifulSoup/bs4/doc/…
    • 好点 @Jalepeno112 放入一个像样的 html 字符串总是更明智不过...不知道这个谢谢!
    猜你喜欢
    • 2019-06-04
    • 2017-10-20
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2021-03-13
    • 2021-08-22
    相关资源
    最近更新 更多