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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達式在標(biāo)記后獲取第二個 div

使用正則表達式在標(biāo)記后獲取第二個 div

MMTTMM 2022-05-24 10:53:28
我有一個如下的網(wǎng)站代碼:CODE ABOVE<div class="full">   <div>      <div> **<== WANT TO START GRABBING HERE **        <div>CONTENT</div>        <div>CONTENT</div>        <div>CONTENT</div>        <div>CONTENT</div>      </div> **<== STOP GRABBING HERE **   </div></div>CODE BELOW我正在嘗試在 Python 中使用正則表達式,以便在 div 關(guān)閉<div>后<div class="full">停止后獲取第二個的全部內(nèi)容,如上面的代碼所示。我的問題是:可以使用正則表達式在 Python 中執(zhí)行此操作嗎?怎么做?
查看完整描述

3 回答

?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

對于 html 元素選擇Beautiful Soup是您所需要的,@QHarr答案應(yīng)該有效只需檢查您使用的編碼。


但是,如果您想要正則表達式解決方案,只需使您的字符串變平(沒有換行符)而不是搜索元素:


        import re


        html = """<div class="full">

           <div>

              <div> **<== WANT TO START GRABBING HERE **

                <div>CONTENT</div>

                <div>CONTENT</div>

                <div>CONTENT</div>

                <div>CONTENT</div>

              </div> **<== STOP GRABBING HERE **

           </div>

        </div>"""

        sep = 'xxxx****'   # dummy string to replace \n and put them back

        r = '<div class="full">[\s{0}]*<div>(.*)</div>[\s{0}]*</div>'.format(sep)

        # search will return first matching element.

        l = re.search(r, html.replace('\n',sep)).groups(0)[0]

        # findall will return all element matching the pattern if you have more than one use findall

        # l = re.findall(r, html.replace('\n',sep))[0]

        print(l.replace(sep, '\n'))


查看完整回答
反對 回復(fù) 2022-05-24
?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

對于您的特定情況,請嘗試以下正則表達式:

(<div>\s+){2}([\s\w</>]*?)(</div>\s+){2}

然后從中提取所需的組。

但是,我建議改用BeautifulSoup,它更簡單、更強大。


查看完整回答
反對 回復(fù) 2022-05-24
?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

您可以結(jié)合使用類和類型css 選擇器以及子組合器來完成此操作


from bs4 import BeautifulSoup as bs


html = '''<div class="full">

   <div>

      <div>

        <div>CONTENT</div>

        <div>CONTENT</div>

        <div>CONTENT</div>

        <div>CONTENT</div>

      </div>

   </div>

</div>'''


soup = bs(html, 'lxml')

print(soup.select_one('.full > div > div'))


查看完整回答
反對 回復(fù) 2022-05-24
  • 3 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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