基于bs4库的HTML查找方法
基于bs4库的HTML查找方法
find_all方法
<>.find_all(name,attrs,recursive,string,**kwargs)
返回一个列表类型,内部存储查找的结果
name
对标签名称的检索字符串
import requests
from bs4 import BeautifulSoup
r=requests.get('http://python123.io/ws/demo.html')
demo=r.text
soup=BeautifulSoup(demo,'html.parser')
list_a=soup.find_all('a')# 查找多个标签
for item in list_a:
print(item)
list_a_b=soup.find_all(['a','b'])#查找多个标签
print("------------")
for item in list_a_b:
print(item)
# 查找所有的标签
for tag in soup.find_all(True):
print(tag.name)
attrs
对标签属性值检索的字符串,可标注属性检索
# 查找对应属性的标签
print(soup.find_all('p','course'))
#查找对一个id的信息
print(soup.find_all(id='link1'))
recursive
是否针对子孙节点全部进行搜索,默认是True
soup.find_all('a',recursive=False)#不对子孙节点进行搜索
简写
soup(...)等价于soup.find_all()
扩展方法
方法 | 说明 |
---|---|
<>.find() | 搜索仅仅返回一个结果,字符串类型,同find_all参数 |
<>.find_parents() | 在先辈中搜索,返回列表类型,同find_all参数 |
<>.find_parent() | 在先辈节点中返回一个结果,字符串类型,同find参数 |
<>.find_next_siblings() | 在后续平行节点中搜索,返回列表类型,同find参数 |
<>.find_next_sibling() | 在后续平行节点返回一个结果,字符串类型,同find参数 |
<>.find_previous_siblings() | 在前序平行节点中搜索,返回列表类型,同find参数 |
<>.find_previous_sibling() | 在前序平行节点返回一个结果,字符串类型,同find参数 |