第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從包含在 HTML 標(biāo)記和不帶標(biāo)記的字符串中的一系列字符串中提取文本

從包含在 HTML 標(biāo)記和不帶標(biāo)記的字符串中的一系列字符串中提取文本

慕尼黑5688855 2022-07-12 15:25:55
考慮以下 HTML:<li>  <a href="url">    <b>This</b>    " is "    <b>a</b>    " test "    <b>string</b>    "!"  </a></li>我想提取<a>標(biāo)簽之間的所有文本,除了"!". 換句話說(shuō),包含在第一個(gè)開(kāi)頭<b>和最后一個(gè)結(jié)尾之間的文本</b>: This is a test string。from bs4 import BeautifulSouphtml = '''<li><a href="url"><b>This</b>" is "<b>a</b>" test "<b>string</b>"!"</a></li>'''soup = BeautifulSoup(html)anchor = soup.a請(qǐng)注意,<b>沒(méi)有標(biāo)簽的標(biāo)簽和字符串的數(shù)量會(huì)有所不同,next或者next_sibling不起作用。有沒(méi)有更簡(jiǎn)單的方法來(lái)做到這一點(diǎn)?編輯: 理想情況下,我想要一種方法,即使我在最后一個(gè)</b>.
查看完整描述

2 回答

?
慕娘9325324

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'


查看完整回答
反對(duì) 回復(fù) 2022-07-12
?
斯蒂芬大帝

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í)行此操作。


查看完整回答
反對(duì) 回復(fù) 2022-07-12
  • 2 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)