前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫+反爬虫+js代码混淆

爬虫+反爬虫+js代码混淆

作者头像
李昂君
发布2023-03-16 21:56:48
3.7K0
发布2023-03-16 21:56:48
举报
文章被收录于专栏:李昂君

阅读量: 7

前言

在日常开发工作业务场景中,你可能会遇到重复性的业务工作脚本功能维护。笔者分析了下,其在修改业务代码后,大致都会遇到如下问题:

  1. 部署较繁琐;
  2. 用户使用不便捷;

笔者推荐遇到类似这种业务场景,可以将 应用程序脚本代码 直接嵌入在云端,用户实际需要使用的时候进行加载到应用程序主体中,这样主体应用在得到应用程序脚本代码之后,就可以获得到最新的输入、输出结果。这样的应用方式其扩展性将会得到极大的增强。

本着可持续化、高便捷功能迭代、高聚合,笔者在遇到以上业务场景时,主要采用golang进行业务逻辑脚本代码封装,然后采用 gomacro 进行REPL,配合 wails (使用 Go 和 Web 技术)编写桌面应用项目,实现嵌入式脚本可视化客户端应用程序。

gomacro热加载代码示例

代码语言:javascript
复制
package main

import (
	`strings`

	"github.com/cosmos72/gomacro/fast"

	_ "my-project/core/gomacro-package-init" // inject `github.com/imroc/req/v3` package
)
// string code
const source = `

import (
	"fmt"
	"github.com/imroc/req/v3"
)

// http client get url data
func getData() string {
    client := req.C()
    // send http url request 
    response, err := client.R().Get("https://api.github.com/users/cosmos72")
    // get response data
    fmt.Println(len(response.Bytes()), err)
    return "finish"
}

`

func main() {
	src := strings.NewReader(source)
        // int gomacro
	interp := fast.New()
        // check code 
	if _, err := interp.EvalReader(src); err != nil {
		panic(err)
	}
	interp.ChangePackage("main", "main")
        // call func
	interp.Eval1("getData()")
}

嵌入式应用程序简略流程图

成品效果图

服务端管理商店中的应用脚本

客户端执行商店中的应用脚本

结语

通过REPL理念技术,可明确看出,它能大幅度的提升项目中”应用的便捷更新、业务拓展性“。其次动态编译应用的理念对于在客户端调试环境还是有待提升,目前大多数场景下笔者都是在开发环境调试无误才发布至服务端商店中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-2-01 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • gomacro热加载代码示例
  • 嵌入式应用程序简略流程图
  • 成品效果图
    • 服务端管理商店中的应用脚本
      • 客户端执行商店中的应用脚本
      • 结语
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档