簡體   English   中英

BeautifulSoup通過里面的文本找到一個div標簽

[英]BeautifulSoup find a div tag by the text inside

我有這個HTML格式

<tr>
  <th>
    <div>USING THIS TEXT</div>
  </th>
  <td>
    <div class="plainlist">
      <ul>
        <li>
           "GET THIS TEXT HERE"
           <span> 
             " ("
             <span class="bday"> "AND GET THIS TEXT HERE"
             ")"
           </span>
        </li>
      </ul>
    </div>
  </td>
</tr>

我已經弄清楚了如何使用find和id訪問無序列表,但是不確定當我想要的div沒有id而是只有我可以使用的文本時該怎么做。

如果有一個id,那么python代碼將是

test = soup.find(id="[SOME_ID]")
        if test is not None:
            ul = cast.find_next('ul')
            for li in ul.findAll('li'):
                if(li is not None):
                    print(li.text)

但是我不確定如何只知道div內的文本而不是id來獲得“測試”值。

謝謝你的幫助。

您必須導入re模塊才能通過文本查找標簽。嘗試讓我知道是否可行。

import bs4
import re
html_doc="""<html><tr>
  <th>
    <div>USING THIS TEXT</div>
  </th>
  <td>
    <div class="plainlist">
      <ul>
        <li>
           "GET THIS TEXT HERE"
           <span>
             " ("
             <span class="bday"> "AND GET THIS TEXT HERE"
             ")"
           </span>
        </li>
      </ul>
    </div>
  </td>
</tr></html>"""
soup = bs4.BeautifulSoup(html_doc, 'html.parser')
test=soup.find('div' , text=re.compile("USING THIS TEXT"))
if test is not None:
            ul = test.find_next('ul')
            for li in ul.findAll('li'):
                if(li is not None):
                    print(li.text)

輸出:

"GET THIS TEXT HERE"

             " ("
              "AND GET THIS TEXT HERE"
             ")"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM