2016-01-17 2 views
0

Я использую Beautiful Soup 4 для очистки веб-страницы. Я получаю весь путь вниз к содержанию мне нужнополучение содержимого жирных тегов или удаление их из списка элементов

>>> for t in td: _CAT.append(t.renderContents()) 
>>> _CAT 
[b'THE OLD TESTAMENT', b'SEAN SONG', b'CITY WALK', b'SLOGANEERING', b'ROOM', b'"BOARD"', b'WORLD HISTORY', b'SPIRITED CINEMA', b'TRANSPORTATION', b'FISH, BIRD, OR MAMMAL', b'PRUFROCKIAN PONDERINGS', b'YOU GET AN "A"', b'COMIC BOOKS'] 

Есть в любом случае для удаления B «» в каждом элементе?

Я попытался с помощью

>>> name_one = _CAT[0][2:] 
>>> name_one 
b'E OLD TESTAMENT' 

, но как вы можете увидеть его удалить первые 2 буквы от фактического содержания тэга.

Я также попытался с помощью

>>> _CAT[0].renderContents() 

в результате которого в понятной ошибки.

Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
AttributeError: 'bytes' object has no attribute 'renderContents' 

Как получить только содержимое жирных меток, например. б '[СОДЕРЖАНИЕ]'?

Доказательство ОТВЕТА:

>>> for s in _CAT: names.append(s.decode('utf-8')) 
>>> names 
['THE OLD TESTAMENT', 'SEAN SONG', 'CITY WALK', 'SLOGANEERING', 'ROOM', '"BOARD"', 'WORLD HISTORY', 'SPIRITED CINEMA', 'TRANSPORTATION', 'FISH, BIRD, OR MAMMAL', 'PRUFROCKIAN PONDERINGS', 'YOU GET AN "A"', 'COMIC BOOKS'] 
+0

Связанные: [? Что означает «б» характер делает перед строковым литералом] (http://stackoverflow.com/questions/6269765/what-does -The-б-символьный-ду-в-перед-в-а-струнной-буквальным). – alecxe

+0

Я предполагаю, что это означает, что текст будет выделен жирным шрифтом на веб-странице, но, честно говоря, я не уверен, что это никогда не случалось с моими предыдущими сценариями bs4. – dbrad

ответ

1

'В' означает, что список ваши детали byte strings. Вы можете декодировать каждый элемент в utf-8 с

[s.decode('utf-8') for s in _CAT] 
+0

мальчик, я чувствую себя немым прямо сейчас. Благодарю вас, сэр. – dbrad

Смежные вопросы