2017-06-30 191 views
1

我無法解析li標籤內的html元素。 這是我的代碼:BeautifulSoup獲取li標籤內的元素

from bs4 import BeautifulSoup 
import requests 

sess = requests.Session() 

url = 'http://example.com' 
page = sess.get(url) 
page = BeautifulSoup(page.text) 
soap = page.select('li.item') 
print(soap.find('h3').text) 

這是HTML代碼:

... 
<li class="item"> 
    <strong class="item-type">design</strong> 
    <h3 class="item-title">Item title</h3> 
    <p class="item-description"> 
      Lorem ipsum dolor sit amet, dicam partem praesent vix ei, ne nec quem omnium cotidieque, omnes deseruisse efficiendi sit te. Mei putant postulant id. Cibo doctus eligendi at vix. Eos nisl exerci mediocrem cu, nullam pertinax petentium sea et. Vim affert feugait an. 
    </p> 
</li> 
... 

有超過10 L1標籤我只是貼上其中之一。

輸出錯誤:

Traceback (most recent call last): 
    File "test.py", line 10, in <module> 
    print(soap.find('h3').text) 
AttributeError: 'list' object has no attribute 'find' 
+1

,'soap'是一個列表:'[s.find( 'H3') 。]應該有幫助 –

+0

@DaveJ謝謝你對我有用 – HJNg333

+0

@DaveJ我怎麼編輯這個'soap.select('.class')[0] .text.strip()if soap。 select'('。class')else''' – HJNg333

回答

1

由於@DaveJ,此方法處理:

下面提到
[s.find('h3').text for s in soap]