在我抓取的网页中,有很多标题,我需要识别它们以在我的数据库中设置一个值。问题是这些标题没有特定的 ID 或类。他们遵循这些模式:<p ALIGN="CENTER"><font face="Arial" SIZE="2"><a name="tituloivcapituloisecaoii"></a><b><span style="text-transform: uppercase">Seção II<br>DAS ATRIBUIÇÕES DO CONGRESSO NACIONAL</span></b></font></p><p ALIGN="CENTER"><font face="Arial" SIZE="2"><a name="tituloivcapituloisecaoiii"></a><b><span style="text-transform: uppercase">Seção III<br>DA CÂMARA DOS DEPUTADOS</span></b></font></p>标识它们的一个属性是:text-trasform: uppercase.如何检查是否p包含一个标题?这是我当前的代码:soup = BeautifulSoup(f, 'html.parser')for tag in soup.findAll(): if tag.name in ['a', 'strike']: tag.decompose()allp = soup.findAll('p')for p in allp: print(p)
1 回答
绝地无双
TA贡献1946条经验 获得超4个赞
按标签类型解析 html 后,您可以使用任何定义属性在标签内进行搜索。该text-transform:uppercase可在这种情况下使用。
soup = BeautifulSoup(f, 'html.parser')
for p in soup.find_all("p"):
if p.span["style"]=="text-transform: uppercase":
title=p.text
print(title)
>>>Seção IIDAS ATRIBUIÇÕES DO CONGRESSO NACIONAL
这将找到所有<p>包含<span>标签的标签,style=="text-transform: uppercase"并打印它们的相关文本。
添加回答
举报
0/150
提交
取消