2016-01-17 35 views
0

我使用美麗的湯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'] 
+0

相關解碼:?什麼是「B」字符字符串文字的前面做(http://stackoverflow.com/questions/6269765/what-does -the-b-字符-DO-在-前端的A-字串文本)。 – alecxe

+0

我假設它在那裏代表網頁上粗體的文字,但老實說我不知道​​我從來沒有發生過這種情況與我以前的BS4腳本。 – dbrad

回答

1

的 'B' 意味着你的列表項byte strings。你可以給每個項目utf-8

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

男孩我現在感到啞巴。謝謝你,先生。 – dbrad

相關問題