Saya cuba menggunakan BeautifulSoup untuk mengekstrak maklumat daripada blok html berstruktur tidak seragam. Saya sedang mencari cara untuk menggabungkan blok teks antara tag dalam output carian/penapis. Contohnya, daripada html:
Description Section1 - line1
- line2
- line3
Section2 Content2
Saya ingin membuat senarai output yang mengabaikan jenis teg tertentu (ul和li),但捕获顶级未标记文本。我发现的最接近的是.select(':not(ul,li)')或.find_all(['strong'])dalam contoh di atas, tetapi kedua-duanya tidak boleh menangkap kedua-dua teks peringkat atas yang tidak berteg dan pelbagai teg sasaran. Gelagat yang ideal adalah seperti ini:
.find_all(['strong','UNTAGGED'])
menghasilkan output berikut:
[ Description, Section1, Section2, Content2 ]
Untuk mendapatkan output, anda boleh pilih
,然后选择它的next_siblingdahulu.Contoh
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()]) dataOutput