2017-06-30 142 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]