python使用bs4 同时lxml也要安装才行
from bs4 import BeautifulSoup soup = BeautifulSoup(open('index.html',encoding='utf-8'),'lxml') print(soup)
就可以使用了.
下面是一些用法示例:
from bs4 import BeautifulSoup soup = BeautifulSoup(open('index.html',encoding='utf-8'),'lxml') # # 获取 第一个a # print(soup.a) # # 获取a标签的属性 attrs # print(soup.a.attrs) # # 获取第一个div 里面的属性是title='nn'的 # print(soup.find('div',title='nn')) # #class会报错 因为是关键字 所以用class_ 就行了 这个特殊点 # print(soup.find('div',class_='logo')) # # find_all 找到所以符合的元素 # print(soup.find_all('a')) # # find_all 如果想获取多个标签的话 使用list才行 # print(soup.find_all(['a','span'])) # # find_all 可以限制条件 查找前几条 # print(soup.find_all('a',limit=3)) # select 选择器 选择类选择器 比上面的方便 我们做项目也用的他 # print(soup.select('.logo')) #类选择器 # print(soup.select('#logo')) #id选择器 # print(soup.select('div[class]')) # 选择div里有class属性的 # print(soup.select('.logo img[class="img1"]')) #img的class为img1的 # print(soup.select('a img[class="img2"]')[0]) #获取标签中的内容 get_text() # print(soup.select('.aa')[0].get_text()) obj = soup.select('.aa')[0] #name是标签的名字 # print(obj.name) # 获取属性左右一个字典返回 # print(obj.attrs) # 获取接点的某个属性 print(obj.attrs.get('data-field'))