BeautifulSoup

findAll(tag,attributes,recursive,text,limit,keywords)

find(tag,attributes,recursive,text,keywords)

标签参数tag,他可以传一个标签的名称或多个标签名称组成的Python列表做标签参数.

bsObj.find_all({'h1','h2','h3'})

属性参数attributes使用一个Python字典封封装一个标签的若干属性和对应的属性值.

bsObj.find_all('span',{'green','red'})

在运行带有class的属性查找是会报错:

bsObj.find_all(class='green')

不过,可以用Beautiful提供的臃肿的方案:在class后面加一个下划线:

bsObj.find_all(class_='green')

与lambda一起使用

 soup.find_all(lambda tag: len(tag.attrs) == 2)

会找出例如下面的标签:

<div class='body' id='content'></div>

<span style='color:red' class='title'><span>

在BeautifulSoup这里面使用lambda表达式选择标签,将是正则表达式的完美代替方案.

 

posted @ 2019-01-24 11:13  zhaijihai  阅读(188)  评论(0编辑  收藏  举报