Как определить встроенный атрибут CSS - PullRequest
0 голосов
/ 12 декабря 2018

На веб-странице, которую я копирую, есть много заголовков, и мне нужно идентифицировать их, чтобы установить одно значение в моей базе данных.Проблема заключается в том, что эти названия не имеют определенного идентификатора или класса.

Они следуют этому шаблону:

<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 Ответ

0 голосов
/ 12 декабря 2018

После того, как вы проанализировали 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", и напечатан соответствующий текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...