BeautifulSoup學習筆記

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'
相關文章
相關標籤/搜索