2012-11-02 64 views
0

我想學習如何刮網,但我有一些問題讓我的代碼工作。我想從下面的代碼中提取的數字是77.80。我遇到的問題是找到足夠獨特的信息來找到信息(地點)。你能幫我用正確的代碼嗎?提前致謝!BeautifulSoup - 提取號碼

</td> 

      <td class="small">&nbsp;&nbsp;</td> 

        <td align="center" nowrap valign="center" class="small"> 
        <a alt="Utvald" class="small" href="javascript:QT('/se/skandia/funds/chosen.aspx?tab=5&cid=0P0000T35O&lang=SV&curiso=SEK&country=SE&clientattributes=8&lastpage=Sök fond&LastPageURL=/se/skandia/quickrank/index.aspx?tab=RSLTS|lang=SV|univ=SE1|country=SE|curiso=SEK|mec=|cat=-1|search=|sortby=Custom_4|sortorder=ASC|PageNo=1|Firstletter=','0P0000T35O','600')" onmouseout="status=''; return true"><img src="../read/im/sigillsvartsmall_FFFFFF.gif" border="0" alt="Utvald av Skandia" height="12" width="9"/></a> 
       </td> 

      <td class="small">&nbsp;&nbsp;</td> 

       <td align="right" nowrap valign="top" class="small"> 
        77.80       
       </td> 

      <td class="small">&nbsp;&nbsp;</td> 

       <td align="right" nowrap valign="top" class="small"> 
        <!--<img src="../read/im/valueSEK.gif" align="texttop" height="10" width="22">--> 
        SEK 
       </td> 

      <td class="small">&nbsp;&nbsp;</td> 

       <td align="right" nowrap valign="top" class="small"> 
        1.4 
       </td> 

      <td class="small">&nbsp;&nbsp;</td> 

       <td align="right" nowrap valign="top" class="small"> 
        0.5 
       </td> 

      <td class="small">&nbsp;&nbsp;</td> 

       <td align="right" nowrap valign="top" class="small"> 
        2.7 
       </td> 

      <td class="small">&nbsp;&nbsp;</td> 

       <td align="right" nowrap valign="top" class="small"> 
        6.6 
       </td> 
+1

沒有足夠的信息來概括你想要的東西。你想要一個單元格後的第一個數字與圖像?你想要最大的數字嗎?現在,我們只知道你想要的數字是77.80。如果你想要的只是數字77.80,那麼答案很簡單! –

+0

如果你的webscraping沒有足夠多,我會建議使用lxml。然後你可以使用很好的xpath。另外,根據stackoverflow.com/questions/11465555/can-we-use-xpath-with-beautifulsoup,它可能會更快 – Sheena

回答

2

這裏是如何找到你想要的文字。這只是尋找具有class='small'valign='top'的第一個td

soup = BeautifulSoup(s) 
tds = soup.find_all('td', attrs={'class': 'small', 'valign': 'top'}) 
the_td = tds[0].text.strip()