首页 > 代码库 > python BeautifulSoup find 方法

python BeautifulSoup find 方法

这里我们重点讲一下find的几种用法,其他的类比:

  find(name=None, attrs={}, recursive=True, text=None, **kwargs)

(ps:只讲几种用法,完整请看官方link : http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html#The%20basic%20find%20method:%20findAll%28name,%20attrs,%20recursive,%20text,%20limit,%20**kwargs%29)

  1) 搜索tag:

1 find(tagname)        # 直接搜索名为tagname的tag 如:find(‘head‘)2 find(list)           # 搜索在list中的tag,如: find([‘head‘, ‘body‘])3 find(dict)           # 搜索在dict中的tag,如:find({‘head‘:True, ‘body‘:True})4 find(re.compile(‘‘)) # 搜索符合正则的tag, 如:find(re.compile(‘^p‘)) 搜索以p开头的tag5 find(lambda)         # 搜索函数返回结果为true的tag, 如:find(lambda name: if len(name) == 1) 搜索长度为1的tag6 find(True)           # 搜索所有tag

 

  2) 搜索属性(attrs):

1 find(id=‘xxx‘)                                  # 寻找id属性为xxx的2 find(attrs={id=re.compile(‘xxx‘), algin=‘xxx‘}) # 寻找id属性符合正则且algin属性为xxx的3 find(attrs={id=True, algin=None})               # 寻找有id属性但是没有algin属性的

  3) 搜索文字(text):

注意,文字的搜索会导致其他搜索给的值如:tag, attrs都失效。

方法与搜索tag一致

  4) recursive, limit:

  recursive=False表示只搜索直接儿子,否则搜索整个子树,默认为True。

  当使用findAll或者类似返回list的方法时,limit属性用于限制返回的数量,如findAll(‘p‘, limit=2): 返回首先找到的两个tag

python BeautifulSoup find 方法