1、<>,find_all(name,attrs,recursive,string,**kwargs)
返回一个列表类型,存储查找的结果
name:对标签名称的检索字符串。
import requestsfrom bs4 import BeautifulSoupimport re#BeautifulSoup是一个类r = requests.get('http://python123.io/ws/demo.html')print(r.text)demo = r.text#解析demo的解释器soup = BeautifulSoup(demo,'html.parser')soup.find_all('a')soup.find_all(['a','b'])for tag in soup.find_all(True): print(tag.name)for tag in soup.find_all(re.compile('b')): print(tag.name)
attrs:对标签属性值得检索字符串,可标注属性检索。
#承接上面的demosoup.find_all('p','course')soup.find_all(id='link1')#我的demo中不包括linksoup.find_all(id='link')soup.find_all(id=re.compile('link'))
recursive:是否对子孙全部检索,默认True
#返回的是一个空列表,这意味着是从soup的根节点开始,a标签应该在子孙的后续节点中print(soup.find_all('a',recursive=False))
string:<>...</>中字符串区域的检索字符串。
print(soup)#必须精确的输入字符串信息print(soup.find_all(string = 'Basic Python'))#如果希望输入一个字符串,检索出更多的信息print(soup.find_all(string = re.compile('python')))
2、简短表示
<tag>(..)等价于<tag>.find_all(..)
soup(..)等价于soup.find_all(..)
3、七个扩展方法