如何识别css内联属性



在我正在抓取的网页中,有很多标题,我需要识别它们才能在数据库中设置一个值。问题是这些标题没有特定的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)

一旦按标记类型解析了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

这将找到包含<span>标签的所有<p>标签,其中style=="text-transform: uppercase"并打印其关联文本。

最新更新