2016-10-04 48 views
-1

我試圖從(span class ='Number')中取消。代碼看起來像這樣在我正在報廢的頁面上:br標記之間的美麗填充

<div id="DetailMainBox"> 
<table> 
<tr> 
<td rowspan="2" class="styleA"> 
<span class="UP">99&nbsp;</span><span class="Change">10.00 (-0.1%)</span> 
<span class="Portfolio"><a href="../../members/index.php" class="ThemeColor" target="_blank">Menu<img src="../images/more.gif" width="11" height="11" border="0" align="absmiddle" /></a></span> 
</td> 



<td class="styleB">Max Quantity<span class="RT"></span><br> 
<span class="Number">100.000</span></span> </td> 

<td class="styleB">Average Quantity<span class="RT"></span><br /> 
<span class="Number">822</span></td> 

<td class="styleB">Previous Order<br /> 
<span class="Number">96</span></td> 

<td class="styleB">Max Price<br /> 
<span class="Number">104</span></td> 

<td class="styleB">Number of Trades<br /> 
<span class="Number">383</span></td> 
</tr> 

<tr> 
<td class="styleB">Min Price<span class="RT"></span><br> 
<span class="Number">59</span></td> 

<td class="styleB">Total Amount<span class="RT"></span><br /> 
<span class="Number">800</span></td> 

<td class="styleB">Start<br /> 
<span class="Number">10</span></td> 

<td class="styleB">Low<br /> 
<span class="Number">98 </span></td> 

我試圖使用Beautifulsoup來刮取數據。然而,它返回屏幕

from bs4 import BeautifulSoup 

html = response.content 
soup = BeautifulSoup(html,"html.parser") 
title = soup.select('td.styleB')[0].next_sibling 
title1 = soup.find_all('span', attrs={'class': 'Number'}).next_sibling 
print(title1) 

我希望我可以檢索數量如下的任何內容: 最大數量:100 平均數量:822 以前的訂單:96 最高出價:104 數交易:383 最低價格:59 總金額:800 開始:10 低:98

請指教一下是從處理查詢我的代碼的問題。謝謝

+0

對於標籤文本嘗試tag.string –

回答

1

可能的解決方案如下 - 挖成BS4更多,你可以得到一個更高效,更優雅的解決方案:

from bs4 import BeautifulSoup 

soup = BeautifulSoup(open("bs4_test.html"), "html.parser") 
tds = soup.select('td.styleB') 
for td in tds: 
    num = td.select('span.Number') 
    for i in num: 
     print ("{0} : {1}".format(td.next_element, i.string)) 

bs4_test.html是您共享HTML - 上述線路輸出:

Max Quantity : 100.000 
Average Quantity : 822 
Previous Order : 96 
Max Price : 104 
Number of Trades : 383 
Min Price : 59 
Total Amount : 800 
Start : 10 
Low : 98 

供參考bs4_test.html:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <div id="DetailMainBox"> 
     <table> 
      <tr> 
       <td class="styleA" rowspan="2"><span class= 
       "UP">99&nbsp;</span><span class="Change">10.00 (-0.1%)</span> 
       <span class="Portfolio"><a class="ThemeColor" href= 
       "../../members/index.php" target="_blank">Menu<img align= 
       "absmiddle" border="0" height="11" src="../images/more.gif" 
       width="11"></a></span></td> 
       <td class="styleB">Max Quantity<span class="RT"></span><br> 
       <span class="Number">100.000</span></td> 
       <td class="styleB">Average Quantity<span class="RT"></span><br> 
       <span class="Number">822</span></td> 
       <td class="styleB">Previous Order<br> 
       <span class="Number">96</span></td> 
       <td class="styleB">Max Price<br> 
       <span class="Number">104</span></td> 
       <td class="styleB">Number of Trades<br> 
       <span class="Number">383</span></td> 
      </tr> 
      <tr> 
       <td class="styleB">Min Price<span class="RT"></span><br> 
       <span class="Number">59</span></td> 
       <td class="styleB">Total Amount<span class="RT"></span><br> 
       <span class="Number">800</span></td> 
       <td class="styleB">Start<br> 
       <span class="Number">10</span></td> 
       <td class="styleB">Low<br> 
       <span class="Number">98</span></td> 
      </tr> 
     </table> 
    </div> 
</body> 
+0

解決方案是針對您在問題中提出的問題 - 如果您有新的/不同的要求將其作爲單獨的問題發佈 –