(工作总结-自动获取cookie业务)关于在实践中自动登录获取和更新cookie的一些方法总结

背景

  • 由于目前公司业务的发展,需要定时同步各个民宿/酒店平台(途家民宿\美团酒店\携程酒店\飞猪酒店\木鸟)大量的指定账户房东端的订单、房源以及进行及时改价、上下架、开关房等操作。作为登录认证的cookie常有失效的情况,因此急需开发一个维护账户失效自动重连机制的模块。

大致流程图

技术方案

  • 无头浏览器模式:
    - 选型: 关于这种方案槽点很多,无论是性能还是可靠性方面有待商榷。初期选型过程中,曾经尝试过pyppeteer或selenium进行开发,但pyppeteer早已停止了维护,selenium也是日薄西山了,因此最终选定的方案是使用puppeteer来完成部分平台的自动登录脚本的开发。
    - 流程: 同步脚本不断同步账号数据,若发现cookie失效则把cookie_status状态位置0;自动更新脚本不断扫表,发现失效则用py的subprocess.Popen调用nodejs的阻塞同步脚本并获取返回结果;
    - 反馈:目前途家民宿与飞猪酒店均为这种方式,运行稳定;
  • 接口方式:
    - 该方式避免了滑块和图形验证,但难度较大,其关键是怎么破解并获取除了账号密码外的加密的校验参数,目前携程酒店通过逆向app与frida抓包的方法,能够获取到生成的校验参数,较稳定;
  • 接口+人工组合:
    - 需要更新cookie时,调用内部接口启动爬虫,然后爬虫再去请求平台的接口获取图形验证码,该方法较简单,木鸟用的该方法;
  • 无头浏览器模式+接口+人工混合方式:
    - 部分情况下,即使破解了js加密与滑块、验证码等情况,仍需要短信二次验证,此时需要该方案;或者说,登录某大型平台,其cookie是不跨域的但会自动请求跳转并生成新的cookie,目前美团酒店使用该方式。
posted @ 2020-12-25 15:02  鞠政_小鞠  阅读(829)  评论(0)    收藏  举报