[英]Use BeautifulSoup to find partial text in a H tag inside a DIV class
[英]BeautifulSoup find a div tag by the text inside
我有这个HTML格式
<tr>
<th>
<div>USING THIS TEXT</div>
</th>
<td>
<div class="plainlist">
<ul>
<li>
"GET THIS TEXT HERE"
<span>
" ("
<span class="bday"> "AND GET THIS TEXT HERE"
")"
</span>
</li>
</ul>
</div>
</td>
</tr>
我已经弄清楚了如何使用find和id访问无序列表,但是不确定当我想要的div没有id而是只有我可以使用的文本时该怎么做。
如果有一个id,那么python代码将是
test = soup.find(id="[SOME_ID]")
if test is not None:
ul = cast.find_next('ul')
for li in ul.findAll('li'):
if(li is not None):
print(li.text)
但是我不确定如何只知道div内的文本而不是id来获得“测试”值。
谢谢你的帮助。
您必须导入re模块才能通过文本查找标签。尝试让我知道是否可行。
import bs4
import re
html_doc="""<html><tr>
<th>
<div>USING THIS TEXT</div>
</th>
<td>
<div class="plainlist">
<ul>
<li>
"GET THIS TEXT HERE"
<span>
" ("
<span class="bday"> "AND GET THIS TEXT HERE"
")"
</span>
</li>
</ul>
</div>
</td>
</tr></html>"""
soup = bs4.BeautifulSoup(html_doc, 'html.parser')
test=soup.find('div' , text=re.compile("USING THIS TEXT"))
if test is not None:
ul = test.find_next('ul')
for li in ul.findAll('li'):
if(li is not None):
print(li.text)
输出:
"GET THIS TEXT HERE"
" ("
"AND GET THIS TEXT HERE"
")"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.