python Beautifulsoup count元素,该元素没有内容
如何计算没有内容的元素? 所说的元素没有内容,我的意思是python Beautifulsoup count元素,该元素没有内容,python,beautifulsoup,Python,Beautifulsoup,如何计算没有内容的元素? 所说的元素没有内容,我的意思是 以下是我为实现目标而编写的代码: from bs4 import BeautifulSoup html_doc = """ <dl> <dt class="details-row-7">Overall</dt> <dd id="c0r11" class=" alternate details-row-7"> <div class="mobile-hea
以下是我为实现目标而编写的代码:
from bs4 import BeautifulSoup
html_doc = """
<dl>
<dt class="details-row-7">Overall</dt>
<dd id="c0r11" class=" alternate details-row-7">
<div class="mobile-headings">Overall</div>
<div class="mobile-value">
<div class="ca-rating-star" data-size="1"><i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star-empty icon-1x" style="color: #FF9900"></i>
</div>
</div>
</dd>
</dl>
"""
soup = BeautifulSoup(html_doc)
ele = soup.find("dd", {"id": "c0r11"}, {"class": "alternate details-row-7"})
if ele.find(text=False):
con_str = ele.find("div", {"class":"mobile-value"})
if con_str.find(text=False):
star_ele = con_str.find("div", {"class":"ca-rating-star"})
if star_ele.find(text=False):
star = star_ele.find_all("i", {"class":"icon-star icon-1x"})
i = 0
for s in star:
if s.find(text=False):
i += 1
print(i)
从bs4导入美化组
html_doc=“”
总体上
总体上
"""
汤=美汤(html\U文档)
ele=soup.find(“dd”,{“id”:“c0r11”},{“class”:“alternate details-row-7”})
如果元素查找(text=False):
con_str=ele.find(“div”,“class”:“mobile value”})
如果con_str.find(text=False):
star_ele=con_str.find(“div”,{“class”:“ca评级之星”})
如果星号元素查找(text=False):
star=star_ele.find_all(“i”,“class”:“icon-star-icon-1x”})
i=0
对于star中的s:
如果s.find(text=False):
i+=1
印刷品(一)
但是结果是0….我在这里用要点回答了你的问题
问题是,当您说
s.find(text=False)
时,您正在查找
元素的子元素,而
标记没有子元素。您想查看
标记本身是否有空文本。因此,将s.find(text=False)
替换为s.get_text()
从bs4导入美化组
html_doc=“”
总体上
总体上
"""
汤=美汤(html\U文档)
ele=soup.find(“dd”,{“id”:“c0r11”},{“class”:“alternate details-row-7”})
如果元素查找(text=False):
con_str=ele.find(“div”,“class”:“mobile value”})
如果con_str.find(text=False):
star_ele=con_str.find(“div”,{“class”:“ca评级之星”})
如果星号元素查找(text=False):
star=star_ele.find_all(“i”,“class”:“icon-star-icon-1x”})
i=0
对于star中的s:
如果s.get_text()==“”:#在这一行上更改
i+=1
印刷品(一)
from bs4 import BeautifulSoup
html_doc = """
<dl>
<dt class="details-row-7">Overall</dt>
<dd id="c0r11" class=" alternate details-row-7">
<div class="mobile-headings">Overall</div>
<div class="mobile-value">
<div class="ca-rating-star" data-size="1"><i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star icon-1x" style="color: #FF9900"></i>
<i class="icon-star-empty icon-1x" style="color: #FF9900"></i>
</div>
</div>
</dd>
</dl>
"""
soup = BeautifulSoup(html_doc)
ele = soup.find("dd", {"id": "c0r11"}, {"class": "alternate details-row-7"})
if ele.find(text=False):
con_str = ele.find("div", {"class":"mobile-value"})
if con_str.find(text=False):
star_ele = con_str.find("div", {"class":"ca-rating-star"})
if star_ele.find(text=False):
star = star_ele.find_all("i", {"class":"icon-star icon-1x"})
i = 0
for s in star:
if s.get_text() == "": # CHANGE ON THIS LINE
i += 1
print(i)