Невозможно найти тег и регулярное выражение в BeautifulSoup - PullRequest
1 голос
/ 22 марта 2012

Приведенный пример строки html

<table>
<tr>
<td class="td" height="25">Upstream Power</td>
<td class="td">25.2 dBmV</td>
<td class="td">49.2 dBmV</td>
</tr>
</table>

Я могу найти текст, используя:

soup.find_all(text=re.compile("Power"))

Но найти весь тег не находит ничего.Чего мне не хватает?

soup.find_all("td",text=re.compile("Power"))

1 Ответ

0 голосов
/ 22 марта 2012

В BS3 метод: findAll, а не find_all:

>>> markup = '''<table>
... <tr>
... <td class="td" height="25">Upstream Power</td>
... <td class="td">25.2 dBmV</td>
... <td class="td">49.2 dBmV</td>
... </tr>
... </table>'''
>>> from BeautifulSoup import BeautifulSoup as bs
>>> soup = bs(markup)
>>> import re
>>> soup.findAll(text=re.compile('Power'))
... [u'Upstream Power']

Редактировать: я вижу, что метод был переименован в BS4 .Кажется, у меня все в порядке:

>>> from bs4 import BeautifulSoup as bs
>>> soup = bs(markup)
>>> soup.find_all(text=re.compile('Power'))
... [u'Upstream Power']

Edit2: Чтобы упростить навигацию по дереву разбора, вы можете использовать имена тегов :

>>> soup.td.find_all(text=re.compile('Power'))
... [u'Upstream Power']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...