1 from bs4 import BeautifulSoup 2 import re 3 # 获取需要解析的代码 4 soup = BeautifulSoup(open('1.html','r',encoding='utf8'),'lxml') 5 6 # 改正前端代码中可能出现的错误 7 soup.prettify() 8 9 # 遍历文档树 10 # 只找第一个a标签 11 # print(soup.a.text) 12 # 取文本 a.text 取链接地址a.attrs这个方法返回的数据类型为字典 13 14 # 嵌套 a.tr.td 直接子节点可以用children,父节点用parent 所有子孙节点用descendants 所有的祖先用parents 15 16 # 搜索文档树 17 # def find_all(self, name=标签名字, attrs={属性}, recursive=True, text=None, 18 # limit=None, **kwargs): 19 # 五钟过滤器 20 # 一、字符串 完全匹配 21 # print(soup.find_all(name='div')) 22 # print(soup.find_all(attrs={"class":"icon-title icon-star"})) 23 # print(soup.find_all(text='焦')) 24 25 # 二、列表 可以同时传入多个过滤条件 26 # print(soup.find_all(name=['a','b','div'])) 27 28 # 三、正则 29 # print(soup.find(name=re.compile('^b'))) 30 # print(soup.find(attrs={'class',re.compile('^wbs')})) 31 # print(soup.find_all(text=re.compile('介s*'))) 32 33 # 四、True 34 # print(soup.find_all(name=True)) 35 # print(soup.find_all(attrs=True)) 36 # print(soup.find_all(text=True)) 37 # print(soup.find_all(name='p',text=True)) 38 39 # 五、方法 40 def shuxing(soup): 41 return soup.has_attr("class") and not soup.has_attr('id') 42 43 print(soup.find_all(shuxing))