您好我在Python2.7中使用beautifulsoup,并在以下列方式阅读html文件:
soup=BeautifulSoup(html,"html5lib")
year= soup.find("i",{"class":"fa fa-calendar-o"})
我希望从以下的html中获得2011年的成绩,而我得到的所有价值都不是<i class="fa fa-calendar-o"></i>
。有人可以帮助我并解释我做错了什么吗?谢谢。
</div>
<!-- /.section-title -->
<div class="available clearfix">
<h5 class="pull-left"><!--Available from--> </h5>
<div class="pull-right"> <div class="feedback-rating" data-score="4"></div> </div>
</div>
<div class="section-body">
<ul class="list-info">
<li> <i class="fa fa-random"></i> Manual </li>
<li> <i class="fa fa-tint"></i> Petrol </li>
<li> <i class="fa fa-calendar-o"></i> 2011 </li>
<li> <i class="fa fa-map-marker"></i> Airport (YYZ) </li>
</ul>
<!-- /.list-info -->
</div>
答案 0 :(得分:2)
问题是2011年位于<li> </li>
标记中的<i></i>
否,请尝试以下操作:
i = soup.find("i",{"class":"fa fa-calendar-o"})
year = i.parent.getText()
修改强>
说明:
使用.parent
您可以访问父元素,在这种情况下.parent
会给您
<li> <i class="fa fa-calendar-o"></i> 2011 </li>
,如果您再次.parent
返回
<ul class="list-info">
<li> <i class="fa fa-random"></i> Manual </li>
<li> <i class="fa fa-tint"></i> Petrol </li>
<li> <i class="fa fa-calendar-o"></i> 2011 </li>
<li> <i class="fa fa-map-marker"></i> Airport (YYZ) </li>
</ul>
了解更多信息,请参阅docs