1.若是tag最內層只有一個 NavigableString 類型子節點,那麼這個tag能夠直接使用tag.string 獲得子節點html
1 # encoding=utf-8 2 3 from bs4 import BeautifulSoup 4 5 html=''' 6 <td>直接是 可遍歷的字符串</td> 7 <td><a href="#">包含a標籤的可遍歷字符串</a></td> 8 <td><div><a href="#">包含a標籤和div的可遍歷字符串</a></div></td> 9 ''' 10 soup=BeautifulSoup(html,'html.parser') 11 tds=soup.find_all('td') 12 for td in tds: 13 print 'td:'+str(td) 14 print 'string:'+td.string 15 # 總結:若是tag(及其子tag或子孫tag中)只有一個 NavigableString 類型子節點, 16 # 那麼這個tag能夠直接使用tag.string 獲得子節點 不用寫 子孫tag.string
2.使用頻率較高的get_text()方法,可獲取tag和子孫tag中的內容spa
若是隻想獲得tag中包含的文本內容,那麼能夠用 get_text() 方法,這個方法獲取到tag中包含的全部文本code
內容包括子孫tag中的內容,並將結果做爲Unicode字符串返回。htm
在爬藥智網的時候由於對該方法不熟練,多寫了好多代碼╮(╯▽╰)╭blog
1 html= '<a href="http://example.com/">\nI linked to <i>example.com</i>\n</a>' 2 soup = BeautifulSoup(html,'html.parser') 3 4 #直接獲得全部的文本,中間包含其餘標籤也能夠 5 soup.get_text() 6 #u'\nI linked to example.com\n' 7 soup.i.get_text() 8 #u'example.com' 9 #使用最多的仍是去除文本中的先後空白 10 soup.get_text("|", strip=True) 11 #u'I linked to|example.com'