BeautifulSoup:將頂級文字與經典標籤查找功能結合?
P粉471207302
P粉471207302 2023-09-15 09:16:45
0
1
400

我正在嘗試使用 BeautifulSoup 從非統一結構的 html 區塊中提取資訊。我正在尋找一種方法來組合搜尋/過濾器輸出中標籤之間的文字區塊。例如,來自 html:

 Description Section1 
  • line1
  • line2
  • line3
Section2 Content2

我想建立一個輸出列表,忽略某些類型的標籤(上例中的ulli),但捕獲頂級未標記文字。我發現的最接近的是.select(':not(ul,li)').find_all(['strong']),但兩者都不是它們可以同時捕捉未標記的頂級文字和各種目標標記。理想的行為是這樣的:

.find_all(['strong','UNTAGGED'])

產生如下輸出:

[ Description, Section1, Section2, Content2 ]

P粉471207302
P粉471207302

全部回覆 (1)
P粉905144514

要獲得輸出,您可以先選擇,然後選擇它的next_sibling

範例
from bs4 import BeautifulSoup html = '''  Description Section1 
  • line1
  • line2
  • line3
Section2 Content2
''' soup = BeautifulSoup(html) data = [] for e in soup.select('strong'): data.extend([e,e.next_sibling.strip()]) data
輸出
[Description, 'Section1', Section2, 'Content2']
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!