2 回答

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
試試下面的代碼
result = ''.join([i.strip().replace('"', '') for i in anchor.strings if i.strip()][:-1])
print(result)
輸出
'This is a test string'

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
根據(jù)您的問(wèn)題和評(píng)論,我認(rèn)為獲取子字符串的索引并對(duì) HTML 的整個(gè)子集進(jìn)行操作可以滿足您的需求。
讓我們首先創(chuàng)建一個(gè)函數(shù)來(lái)檢索子字符串的所有索引(參見(jiàn)@AkiRoss 的回答):
def findall(p, s):
i = s.find(p)
while i != -1:
yield i
i = s.find(p, i+1)
然后使用它來(lái)查找<b>和的出現(xiàn)</b>。
opening_b_occurrences = [i for i in findall('<b>', html)]
# has the value of [21, 40, 58]
closing_b_occurrences = [i for i in findall('</b>', html)]
# has the value of [28, 44, 67]
現(xiàn)在您可以使用該信息來(lái)獲取 HTML 的子字符串來(lái)進(jìn)行文本提取:
first_br = opening_b_occurrences[0]
last_br = closing_b_occurrences[-1] # getting the last one from list
text_inside_br = html[first_br:last_br]
中的文本text_inside_br現(xiàn)在應(yīng)該是'<b>This</b>\n" is "\n<b>a</b>\n" test "\n<b>string'. 您現(xiàn)在可以清理它,例如通過(guò)附加</br>回它并使用 BeautifulSoup 提取值或僅使用正則表達(dá)式來(lái)執(zhí)行此操作。
添加回答
舉報(bào)