利用bs4 进行文本查找

find_all 函数

<>.find_all(name, attrs,recursive,string,**kwargs)
#name:对标签名称检索的字符串。
#attrs: 对标签属性值的检索字符串,可以标注属性检索。
#recursive: 是否对子孙节点搜索,默认为True。
#string: 对标签中间的字符串域检索(类似attrs与name)。

打印指定标签类型

import requests
from bs4 import BeautifulSoup

r = requests.get("https://python123.io/ws/demo.html")
demo = r.text
soup = BeautifulSoup(demo, "html.parser")
print(soup.find_all('a'))

循环打印所有标签名

for tag in soup.find_all(True):
    print(tag.name)

借助正则实现精准指定

import re
for tag in soup.find_all(re.compile('b')):
    print(tag.name)

指定标签属性

# 输出指定id为link1 的标签
print(soup.find_all(id='link1'))

也可以借助正则,实现部分信息的查找。

print(soup.find_all(id=re.compile('link')))

简写find_all

由于**.find_all()函数使用非常频繁,因此设计者直接简化了该函数的饮用,我们可以直接使用BeautifulSoup解析后信息存储的变量。
soup.find_all()等价于soup()

find 函数的其他方法

你可能感兴趣的:(利用bs4 进行文本查找)