2017-04-19 56 views
1

化合物的標籤我有下面的代碼:在beautifulsoup

<tr> 
<td><b>Item 1</b></td> 
<td>Name 1</td> 
<td><i><b>Price 1</b></i></td> 
</tr> 
<tr> 
<td><b>Item 2</b></td> 
<td>Name 2</td> 
<td><i><b>Price 2</b></i></td> 
</tr> 
<tr> 
<td><b>Item 3</b></td> 
<td>Name 3</td> 
<td><i><b>Price 3</b></i></td> 
</tr> 

如何獲取價格1,價格2,價格3的值在BeautifulSoup的find_all語法與多個標籤作爲(<td><i><b>)以上?感謝任何解決方案。

我嘗試這樣做:

import os 
 
import sys 
 
from bs4 import BeautifulSoup 
 

 
baca = open("asal.html", "r").read() 
 
soup = BeautifulSoup(baca, "html.parser") 
 
saring = soup.find_all(['td','b']) 
 
for a in saring: 
 
\t print a.text

+0

你能給我們一個你的代碼樣本嗎?謝謝 – anonyXmous

回答

1

您可以使用CSS selector via select()方法基於祖先層次選擇元素,即選擇b如果母公司是i和祖父母是td

>>> raw = '''<div> 
... <tr> 
... <td><b>Item 1</b></td> 
... <td>Name 1</td> 
... <td><i><b>Price 1</b></i></td> 
... </tr> 
... <tr> 
... <td><b>Item 2</b></td> 
... <td>Name 2</td> 
... <td><i><b>Price 2</b></i></td> 
... </tr> 
... <tr> 
... <td><b>Item 3</b></td> 
... <td>Name 3</td> 
... <td><i><b>Price 3</b></i></td> 
... </tr> 
... </div>''' 
>>> from bs4 import BeautifulSoup 
>>> soup = BeautifulSoup(raw, "lxml") 
>>> soup.select("td > i > b") 
[<b>Price 1</b>, <b>Price 2</b>, <b>Price 3</b>] 
+0

謝謝,har07,你的回答很好.. –

+0

sama2 bro ...... – har07