嗨,我正在嘗試377在售出后獲取該專案,然后是 < !-- -- >. 我該怎么做?我得到了 2 個帶有以下代碼的專案。我添加了空間以使其可見。
sold = soup.find_all('span', {"class":"jsx-302 jsx-385"})
結果:
<span class=""jsx-302 jsx-385""><span class=""jsx-302 jsx-385 sold-text"">Sold</span> < !-- -- >377</span>,
<span class=""jsx-302 jsx-385"">Rp41,400 / 100 g</span>
我可以做一個正則運算式來只獲得第一個items[0].text包含出售而忽略其余部分。但是有沒有辦法處理< !-- -- >括號中的跨度?
uj5u.com熱心網友回復:
會同意使用split()但HTML看起來不是那么有效,因此< !-- -- >or<!-- -->的行為尚不清楚。
在以下情況下< !-- -- >:
soup.select_one('span:has(.sold-text)').text.split('>')[-1]
在以下情況下<!-- -->:
soup.select_one('span:has(.sold-text)').text.split(' ')[-1]
我建議filter使用數字:
''.join(filter(str.isdigit, soup.select_one('span:has(.sold-text)').text))
例子
from bs4 import BeautifulSoup,Comment
html = '''
<span "><span >Sold</span> < !-- -- >377</span>
<span >Rp41,400 / 100 g</span>
'''
soup=BeautifulSoup(html,'html.parser')
sold = ''.join(filter(str.isdigit, soup.select_one('span:has(.sold-text)').text))
print(sold)
輸出
377
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/451769.html
