获取粗体标记的内容或从列表项

时间:2016-01-17 17:23:02

标签: python html web-scraping beautifulsoup

我正在使用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'

但是你可以看到它从粗体标签的实际内容中删除了前两个字母。

我也尝试过使用

>>> _CAT[0].renderContents()

导致了一个可以理解的错误。

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

如何才能获得粗体标签的内容,例如B '[CONTENT]'?

回答证明:

>>> 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']

1 个答案:

答案 0 :(得分:1)

'b'表示您的列表项为byte strings。您可以使用

将每个项目解码为utf-8
[s.decode('utf-8') for s in _CAT]