Ekstrak teks daripada berbilang elemen rentang tanpa kelas - menggunakan BeautifulSoup
P粉903052556
P粉903052556 2023-09-15 18:03:23
0
2
768

Beginilah rupa HTML:

<p class="details">
<span>detail1</span>
<span class="number">1</span>
<span>detail2</span>
<span>detail3</span>
</p>

Saya perlu mengekstrak detail2 dan detail3.

Tetapi menggunakan kod ini, saya hanya boleh mendapatkan detail1.

info = data.find("p", class_ = "details").span.text

Bagaimana cara saya mengekstrak item yang diperlukan?

Terima kasih terlebih dahulu!

P粉903052556
P粉903052556

membalas semua(2)
P粉041856955

Dalam kes anda, pilih elemen yang lebih khusus, iaitu pilih semua adik-beradik elemen elemen dengan nombor kelas:

soup.select('span.number ~ span')

Contoh

from bs4 import BeautifulSoup
html='''<p class="details">
<span>detail1</span>
<span class="number">1</span>
<span>detail2</span>
<span>detail3</span>
</p>'''
soup = BeautifulSoup(html)

[t.text for t in soup.select('span.number ~ span')]

Output

['detail2', 'detail3']
P粉099145710

Anda boleh mencari semua <span> ​​dan melakukan pengindeksan biasa:

from bs4 import BeautifulSoup

html_doc = """\
<p class="details">
<span>detail1</span>
<span class="number">1</span>
<span>detail2</span>
<span>detail3</span>
</p>"""

soup = BeautifulSoup(html_doc, "html.parser")

spans = soup.find("p", class_="details").find_all("span")

for s in spans[-2:]:
    print(s.text)

Hasil keluaran:

detail2
detail3

Atau gunakan pemilih CSS:

spans = soup.select(".details span:nth-last-of-type(-n+2)")

for s in spans:
    print(s.text)

Hasil keluaran:

detail2
detail3
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!