bs4语法

节点选择器

from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,'lxml')
tag = soup.a  #取a标签,只取一个

方法选择器

方法选择器
find_all(name,attrs,text,limit):
    soup.findall(name='***')  #根据节点名字定位
    soup.findall(attrs={'属性名(scr,class等)':'值'})#根据属性定位,多个属性时,一个即可定位
    soup.findall(text=res.compile(r'***'))#根据节点文本定位,返回文本
    soup.findall(name='***',limit=2)#只返回两个结果
find(name,attrs,text,limit):区别于find_all,find返回的是一个对象结果
find_all()返回的是一个列表

css选择器

1.根据节点名定位标签:标签选择器
soup.select('***(title,a,p等)')
2.根据节点的class属性定位:css选择器
soup.select('.***')
3.根据id定位
soup.select('#***')
4.嵌套选择:
ss = soup.select('ul')#得到的是一个列表
for i in ss:
    print(i.select("li"))
5.层级选择器
soup.select('div > ul > li') #单层级选择器,按照顺序找到li
soup.select('div li') #多层级选择器,包含了div下的所有li

#获取节点的文本或属性
tag.string:获取直接子文本,如果节点内有平行的节点,则结果是None
tag.get_text():获取子孙节点的所有文本
tag['***(属性)']:获取节点属性

你可能感兴趣的:(python,bs4语法,其他)