Skip to content
dmf-code edited this page May 13, 2020 · 4 revisions

这是一个通过配置自动化操作的框架,它效率不会很高,但是可以解决一些痛点:

  1. 重复性的浏览器操作(苹果自动化出包流程)
  2. 爬虫(实现爬取使用异步渲染 dom 结构的页面)

框架最大的特点,也是我最喜欢的是:代码完全可以通过配置化进行操作,这样子就能解决页面 DOM 结构经常变化导致爬取出错修复慢的问题。

使用说明:

titan.yml 文件是框架的配置文件

development:  //定义环境
  debug: True //打开调试模式
  headless: False //浏览器是否开启无头模式
  browser_args: [ //浏览器配置参数
    '--disable-infobars',
    '--no-sandbox',
    '--disable-gpu',
    '--ignore-certificate-errors',
    '--ignore-ssl-errors',
    '--window-size=1980,1000',
    '--disk-cache-size=10485760',
    'blink-settings=imagesEnabled=false'
  ]
  experimental_option: { // 扩展参数
    prefs: {

    },
    excludeSwitches: ['enable-automation']
  }
  callback: { //执行完成的回调
    default: 'file', // 默认文件
    stores: { // 回调的存储方法
      file: {
        name: 'boss.txt'
      },
      request: { // 请求后台
        url: 'http://127.0.0.1:5000/tasks/'
      }
    }
  }
  load_command_from_file: True // 加载执行命令,是本地还是后台数据库加载

production:
  debug: False
  headless: True
  browser_args: [
    '--no-sandbox',
    '--disable-gpu',
  ]
  hub: [http://127.0.0.1, http://127.0.0.1]

项目 README.md 中也有 boss 的例子,可以结合起来一起理解。

这个框架所做的事情都是封装官方的方法的,所以对于组件使用不清楚的话,就要看一下官方的文档了。

https://www.selenium.dev/documentation/zh-cn/

组件文档可能没有做到非常详细或是表达不清楚的问题,这里面可以直接看组件代码,这里面会清晰的知道具体需要什么参数。

Clone this wiki locally