2016-12-19 44 views
0

是否有可能從beautifulsoup導航樹

<td class="text"> 

得到的字符串,而是通過從標籤

<a name="rknjiga"> 

導航,因爲它是用來針對頁面的特定部分。我曾嘗試使用

soup.find("a", {"name": "aknjiga"}).parent 

,但只讓我1點了,我的想法是去的第一TR標籤,一個步驟了層次結構,然後通過使用.next_sibling到把指針指向下一個TR標籤

<tr> 
    <td bgcolor="#CDC5A1">&nbsp;</td> 
    <td colspan="2" bgcolor="#CDC5A1" class="bbrownnaslov1"> 
     <a name="rknjiga">Poglavlja u knjizi</a> #name rknjiga is used to find section 
    </td> 
</tr> 
<tr> 
    <td height="92" valign="top"> 
     <table width="100%" border="0" cellspacing="2" cellpadding="0"> 
      <tr> 
       <td class="text"> 
        <br/>1. Dražić, Ivan; Mujaković, Nermina.<br/> 
       </td> 
      </tr> 
      <tr> 
       <td class="text" align="right" valign="bottom"> 
        <a href="#top"></a> 
       </td> 
      </tr> 
      <tr> 
       <td class="text" align="right" valign="bottom"> 
         <img src="images/spacer.gif" width="1" height="1"> 
       </td> 
      </tr> 
     </table> 
    </td> 
</tr> 

輸出需要寫入的txt文件格式:

  1. Dražić,伊萬; Mujaković,Nermina。
  2. Crnković,院長; Vedrana的MikulićCrnković; Rodrigues,B.G. ...

我第一次使用美麗的,所以任何建議,歡迎!

+0

你想要什麼樣的輸出。 –

+0

我想寫在txt文件中, – LuckyStrike

+0

根據你的html,發佈一個示例txt數據,這將是有幫助的 –

回答

0
section = soup.find('a', attrs={'name':"rknjiga"}) 

section.find_next('td',class_="text").get_text(strip=True) 

出來:

'1. Dražić, Ivan; Mujaković, Nermina.' 

或得到所有的TD:

section.find_all_next('td',class_="text") 

簽名:find_all_next(姓名,ATTRS,串,限制,** kwargs)

簽名:find_next(name,attrs,string,** kwargs)

這些方法使用.next_elements到遍歷文檔中的任何標記和 後面的字符串。 find_all_next()方法返回所有匹配,而find_next()僅返回第一個匹配

+0

很有幫助,你現在將如何找到下一個具有類文本的td標籤? – LuckyStrike

+0

非常感謝您的幫助 – LuckyStrike