2013-11-14 185 views
2

爲什麼我的s.select("li")語句選擇代碼?我怎樣才能選擇它?CSS選擇器沒有選擇?

print type(s) 
print s 
if not s.select("li"): print 'lol!' 

OUTPUT:

<class 'bs4.element.Tag'> 
<li id="330811110-hlshE">1</li> 
lol! 

回答

1

select()搜索對象(可以是Soup對象以及一個Tag)你怎麼稱呼它,並且裏面有s沒有li元素找到。這一點,在另一方面,工作原理:

print type(t) 
print t 
print t.select("li") 
if not t.select("li"): print 'lol!' 

# outputs: 
<class 'bs4.element.Tag'> 
<ul><li id="330811110-hlshE">1</li></ul> 
[<li id="330811110-hlshE">1</li>] 

如果你想測試Tag對象是否一個特定的元素,而不是它是否包含一個,只是測試它的name屬性:

if s.name == "li": print "yep" 

# outputs: 
yep