我使用Beautiful Soup 4来刮页。有一块我不想要的文字:
<p class="MsoNormal" style="text-align: center"><b>
<span lang="EN-US" style="font-family: Arial; color: blue">
<font size="4">1 </font></span>
<span lang="AR-SA" dir="RTL" style="font-family: Arial; color: blue">
<font size="4">ـ</font></span><span lang="EN-US" style="font-family: Arial; color: blue"><font size="4">
сүрә фатиһә</font></span></b></p>
使它独特的是它有一个标签。我已经使用findall()来获取所有
标签。所以现在我有一个for循环:
for el in doc.findall('p'):
if el.hasChildTag('b'):
break;
不幸的是,bs4没有&#34; hasChildTag&#34;功能
答案 0 :(得分:4)
也应该可以使用css选择器。
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors
soup.select("p b")
答案 1 :(得分:3)
for elem in soup.findAll('p'):
if elem.findChildren('b'):
continue #skip the elem with "b", and continue with the loop
#do stuff with the elem