что такое возвращаемое значение BeautifulSoup.find? - PullRequest
4 голосов
/ 15 апреля 2010

Я бегу, чтобы получить какое-то значение в качестве оценки.

score = soup.find('div', attrs={'class' : 'summarycount'})

Я запускаю «Печать счета», чтобы получить следующее.

<div class=\"summarycount\">524</div>

Мне нужно извлечь номерную часть. Я использовал модуль re, но не смог.

m = re.search("[^\d]+(\d+)", score)
TypeError: expected string or buffer

function search in re.py at line 142
return _compile(pattern, flags).search(string)
  • Какой тип возврата у функции поиска?
  • Как получить число из переменной Score?
  • Есть ли какой-нибудь простой способ позволить BeautifulSoup самому возвращать значение (в данном случае 524)?

1 Ответ

10 голосов
/ 15 апреля 2010

Возвращает объект, который вы можете использовать для дальнейшего поиска или для извлечения его содержимого с помощью score.contents:

from BeautifulSoup import BeautifulSoup

str = r'''
    <body>
    <div class="summarycount">524</div>
    <div class="foo">111</div>
    </body>
'''

soup = BeautifulSoup(str)
score = soup.find('div', attrs={'class' : 'summarycount'})

print type(score)
print score.contents

Печать:

<class 'BeautifulSoup.Tag'>
[u'524']

Полная документация с несколькими примерами доступна здесь .

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