2016-01-14 3 views
0

Я новичок в Python и BeautifulSoup, так что все еще учась, это, наверное, довольно просто, но я изо всех сил пытаюсь найти ответ.Python BeautifulSoup подбирает CSS

Я в основном пытаюсь очистить «12» от последней строки, используя тег «смещение данных». Я могу перейти к последней строке, выполнив поиск class = "solr-page-selector-page next full", но не знаю, как добраться до '12' отсюда.

'<'a class="solr-page-selector-page" data-offset="12">2</a> 
'<'a class="solr-page-selector-page" data-offset="24">3</a> 
'<'a class="solr-page-selector-page" data-offset="36">4</a> 
'<'a class="solr-page-selector-page" data-offset="48">5</a> 
'<'a class="solr-page-selector-page next full" data-offset="12">Next</a> 

Любая помощь была бы принята с благодарностью.

Спасибо

+0

Возможный дубликат атрибута класса «Обработка» в Beautifulsoup (http://stackoverflow.com/questions/5041008/handling-class-attribute-in-beautifulsoup) – roeland

ответ

3

Это будет делать трюк:

>>> soup.find(class_='solr-page-selector-page next full').get('data-offset') 
'12' 

Вызов get() позволяет получить доступ атрибутов выбранного тега. Вы также можете выполнить dict Lookups стиль:

>>> soup.find(class_='solr-page-selector-page next full')['data-offset'] 
'12' 

Эти два метода отличаются в их поведении, если атрибут не существует для тега. get() вернет None, тогда как [] поднимет исключение KeyError.

+0

Не обязательно, чтобы переменная 'class_' имела символ подчеркивания после этого правильно? Это было сделано, чтобы избежать использования зарезервированного ключевого слова 'class'? –

+0

Да, это должно быть 'class_', чтобы избежать столкновения с зарезервированным словом' class'. В качестве альтернативы вы можете передать dict в 'attrs':' soup.find (attrs = {'class': 'solr-page-selector-page next full'}) ' – mhawke

+0

Brilliant - благодаря mhawke, который выполнил эту работу! – blountdj