对于这个HTML代码:
<ul><li>Include these codes as defined in http://unitsofmeasure.org
<table><tr><td><b>Code</b>
</td><td><b>Display</b></td></tr>
<tr><td>min</td><td>Minute</td><td></td></tr>
<tr><td>h</td><td>Hour</td><td></td></tr><tr>
<td>d</td><td>Day</td><td></td></tr>
</table></li></ul>
我只想要<li>
部分中的信息,我的意思是"Include these codes as defined in http://unitsofmeasure.org"
。但由于</li>
在表后结束,BS4
也会捕获表中的信息。这是我的代码:
definition = [li.get_text() for li in ul.findAll("li")]
这是输出:
[u'Include these codes as defined in http://unitsofmeasure.orgCodeDisplayminMinutehHourdDaywkWeekmoMonthaYear']
如何编辑代码以捕获表中的信息?
答案 0 :(得分:1)
您可以使用extract()删除该表。
definition = [li.find('table').extract().get_text() for li in ul.findAll("li")]
答案 1 :(得分:0)
尝试使用 previousSibling 从表标记向上移动,有关https://www.crummy.com/software/BeautifulSoup/bs4/doc/#method-names的可用方法的更多信息
t = soup.find('table')
print t.previousSibling