2016-10-04 66 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

解决方案是针对您在问题中提出的问题 - 如果您有新的/不同的要求将其作为单独的问题发布 –