Как извлечь текст из тегов <br>в BeautifulSoup - PullRequest
0 голосов
/ 08 апреля 2020

То, что я пытаюсь сделать, это очистить только названия компаний из элемента <td>, который имеет несколько тегов <br>. К вашему сведению, некоторые <td> имеют одно название компании, а другие - два. См. <td> элемент ниже:

<td id="MainContent_DisassociatedRegistrationsCell" colspan="2">
<p style="background-color:#CCCCCC;width:100%;text-align:center">
<strong>License #: 
<a href="LicenseDetail.aspx?LicNum=332673">332673</a>
</strong>
</p>
BAY AREA REMODELING CO
<br>
5230 EAST 12TH
<br>
OAKLAND, CA 94601
<br>
<strong>Effective Dates:</strong>
09/16/1982 - 06/30/1984
<p style="background-color:#CCCCCC;width:100%;text-align:center">
<strong>License #: 
<a href="LicenseDetail.aspx?LicNum=377133">377133</a>
</strong>
</p>
SAVAGE ROOFING COMPANY
<br>
3055 ALVARADO STREET
<br>
SAN LEANDRO, CA 94577
<br>
<strong>Effective Dates:</strong>
 07/01/1982 - 03/31/1985
</td>

Итак, из вышеприведенного элемента <td> я хочу вывод:

BAY AREA REMODELING CO
SAVAGE ROOFING COMPANY

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Использование BeautifulSoup:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html, "html.parser")
>>> [p.next_sibling.strip() for p in soup.findAll("p")]
['BAY AREA REMODELING CO', 'SAVAGE ROOFING COMPANY']
1 голос
/ 08 апреля 2020

Используйте next_sibling после нахождения требуемого тега p

Пример:

from bs4 import BeautifulSoup

html = """<td id="MainContent_DisassociatedRegistrationsCell" colspan="2">
<p style="background-color:#CCCCCC;width:100%;text-align:center">
<strong>License #: 
<a href="LicenseDetail.aspx?LicNum=332673">332673</a>
</strong>
</p>
BAY AREA REMODELING CO
<br>
5230 EAST 12TH
<br>
OAKLAND, CA 94601
<br>
<strong>Effective Dates:</strong>
09/16/1982 - 06/30/1984
<p style="background-color:#CCCCCC;width:100%;text-align:center">
<strong>License #: 
<a href="LicenseDetail.aspx?LicNum=377133">377133</a>
</strong>
</p>
SAVAGE ROOFING COMPANY
<br>
3055 ALVARADO STREET
<br>
SAN LEANDRO, CA 94577
<br>
<strong>Effective Dates:</strong>
 07/01/1982 - 03/31/1985
</td>"""

soup = BeautifulSoup(html, 'html.parser')
for p in soup.find_all('p'):
    print(p.next_sibling.strip())  

Выход:

BAY AREA REMODELING CO
SAVAGE ROOFING COMPANY
...