2016-11-28 59 views
0

我想提取一些信息使用python webscrapping python中美麗的湯。這是部分。我使用錯誤nonetype對象沒有屬性文本,而通過美麗的湯報廢4 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 

我都試過,但沒有工作。我錯在哪裏?

回答

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標籤關閉缺少密切角支架 - 「>」

說不上你如何做到這一點,但這適用於我...

+1

它可能與您使用「lxml」解析器的事實有關。不同的解析器會以不同的方式處理HTML結構,並且一個解析器可能比另一個解析器更好地處理缺少的結束標記。 BeautifulSoup的文檔強調了不同解析器之間的差異 - https://www.crummy.com/software/BeautifulSoup/bs4/doc/#specifying-the-parser-to-use。 – TheF1rstPancake

+1

好點@ Jalepeno112把一個體面的html字符串總是更明智,雖然...不知道這一個謝謝! –

相關問題