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'
相关文章
相关标签/搜索