zoukankan      html  css  js  c++  java
  • beautifulsoup

     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))
  • 相关阅读:
    IntelliJ IDEA ESLint autofix/prettier
    常见电脑屏幕分辨率
    在Vue中使用echarts的两种方式
    升级npm和vue-cli
    挖坑指南:module namespace not found in mapGetters()
    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式
    如何在Vue项目中调试单个组件
    使用jquery的load方法只加载body之间的内容
    固化分组
    占有优先量词
  • 原文地址:https://www.cnblogs.com/python001-vip/p/12176767.html
Copyright © 2011-2022 走看看