84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
這就是HTML的樣子:
detail1 1 detail2 detail3
我需要提取detail2和detail3。
但是使用這段程式碼,我只能得到detail1。
info = data.find("p", class_ = "details").span.text
我該如何提取所需的項目?
提前感謝!
在你的情況下,選擇更具體的元素,也就是選擇所有具有class為number的元素的兄弟元素:
soup.select('span.number ~ span')
from bs4 import BeautifulSoup html=''' detail1 1 detail2 detail3 ''' soup = BeautifulSoup(html) [t.text for t in soup.select('span.number ~ span')]
['detail2', 'detail3']
您可以找到所有的並進行普通索引:
from bs4 import BeautifulSoup html_doc = """\ detail1 1 detail2 detail3 """ soup = BeautifulSoup(html_doc, "html.parser") spans = soup.find("p", class_="details").find_all("span") for s in spans[-2:]: print(s.text)
輸出結果:
detail2 detail3
或使用 CSS 選擇器:
spans = soup.select(".details span:nth-last-of-type(-n+2)") for s in spans: print(s.text)
在你的情況下,選擇更具體的元素,也就是選擇所有具有class為number的元素的兄弟元素:
範例
輸出
您可以找到所有的
並進行普通索引:
輸出結果:
或使用 CSS 選擇器:
輸出結果: