标签:blog http io ar 使用 sp strong div on
这里我们重点讲一下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开头的tag 5 find(lambda) # 搜索函数返回结果为true的tag, 如:find(lambda name: if len(name) == 1) 搜索长度为1的tag 6 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
标签:blog http io ar 使用 sp strong div on
原文地址:http://www.cnblogs.com/qiri07/p/4081612.html