# go-web-crawler **Repository Path**: fierce_wolf/go-web-crawler ## Basic Information - **Project Name**: go-web-crawler - **Description**: No description available - **Primary Language**: Go - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-05-10 - **Last Updated**: 2025-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gitee.com/fierce_wolf/go-web-crawler #### go编译器的安装 ubuntu20自带的版本,比较旧,go的编译器版本,至少使用1.22以及以上版本,所以下载go官网的版本 ``` wget https://dl.google.com/go/go1.22.0.linux-arm64.tar.gz tar -C /usr/local -xzf go1.22.0.linux-arm64.tar.gz echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile source ~/.profile ``` #### IDEA的调试 在IDEA中,可以通过安装go的插件,进行安装调试。但是,IDEA插件市场上的dlv调试器,最高只支持到1.18版本。 所以,它调试新版本的GO,将出现可能调试错误的信息:WARNING: undefined behavior - version of Delve is too old for Go version 1.22 (maximum supported version 1.18) 这时候,可以通过下列命令,使用你安装的GO,编译出一个当前GO版本的调试器dlv.exe ``` go install github.com/go-delve/delve/cmd/dlv@latest ``` 然后,你将GO目录下的dlv.exe复制出来,把IDEA目录下的dlv.exe替换掉,这时候调试工具的版本就匹配了。 #### IDEA的远程调试 在远程的LINUX环境中,安装delve ``` #在服务器上使用dlv引导你的程序,其中2345是IDEA上配置的远程debug端口,下面的前面的引导头,后面接你自己的代码程序命令 dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ``` 然后在IDEA中选择Go Remote来远程debug #### 组件库的引用 go默认的GOPROXY是https://proxy.golang.org非常的缓慢,可以切换为国内的镜像goproxy.cn来解决 ``` #go默认的GOPROXY是https://proxy.golang.org非常的缓慢,可以切换为国内的镜像goproxy.cn来解决 go env -w GOPROXY=https://goproxy.cn,direct #查询最新可用版本 go list -m -versions gitee.com/fierce_wolf/go-fox-edge-common #下载云端的git库和第三方的git库 go mod tidy #可以本地测试自己的go工程代码 go run main.go #也可以windows本地编译 go build -o main.exe ``` #### 版本依赖问题 go的mod版本管理,并不完善,它的go mod tidy命令虽然会自动生成mod文件中的依赖包, 但是,它会自作主张的升级为mod中相关包的最新版本,这就导致了各个包之间的版本兼容性问题 解决办法就是在go mod tidy之后,直接go get具体的版本,进行版本降级 ``` #例如执行go mod tidy后 go mod tidy #golang.org/x/crypto v0.23.0,被go mod tidy自动升级为v0.26.0 #此时v0.26.0跟其他部件要求的go最小版本是不兼容的 #会提示这个错误:note: module requires Go 1.20 #在命令行进行可以使用指明v0.23.0版本的命令,进行版本降级到v0.23.0 go get golang.org/x/crypto@v0.23.0 #此时可能会产生新的依赖关系,缺失github.com/gabriel-vasile/mimetype/internal/charset@v1.4.3 #那么进行go get这个缺失的版本 go get github.com/gabriel-vasile/mimetype/internal/charset@v1.4.3 ``` #### SQLite3引入后的GCC问题 SQLite3是基于C语言开发的第三方数据库,在引用github.com/mattn/go-sqlite3组件的时候,这时候就不再是纯粹的GO语言程序了 此时,需要安装GCC环境,可以选择安装mingw64,推荐包x86_64-14.2.0-release-posix-seh-msvcrt-rt_v12-rev0.7z #### IDEA的命令行参数 ``` redis.host=192.168.1.23 --env_dev=true --app_engine=native --app_type=kernel --app_name=manager-native --env_type=device --env_cpu_id= --env_database=sqlite3 --work_mode=local server.port=9101 redis.port=6379 redis.password=12345678 mysql.host=192.168.1.23 mysql.port=3306 mysql.username=fox-edge mysql.password=12345678 mysql.database=fox_edge param1=1234 param2=567 ``` #### MQTT测试范例 发送: ``` topic:/fox/manager/c2e/BFEBFBFF000906A3/forward { "topic": "/fox/manager/c2e/F9509B1CE7B0F023/forward", "uuid": "fe8a1b6e-8e54-4ccd-b646-31b108cd3228", "resource": "/device/page", "method": "post", "body": { "pageSize": 2, "pageNum": 1 } } ``` 订阅: ``` topic:/fox/manager/e2c/forward/BFEBFBFF000906A3/# { "topic": "/fox/manager/c2e/BFEBFBFF000906A3/forward", "uuid": "fe8a1b6e-8e54-4ccd-b646-31b108cd3228", "method": "post", "resource": "/device/page", "body": { "list": [{ "channelName": "channel-simulator", "channelType": "simulator", "createTime": 1732106118068, "deviceName": "CE+T UPS设备-1000", "deviceParam": { "设备地址": 1 }, "deviceType": "CE+T UPS V3.0", "extendParam": {}, "id": 1001, "manufacturer": "深圳安圣电气有限公司", "updateTime": 1732106142154 }, { "channelName": "channel-simulator", "channelType": "simulator", "createTime": 1732106118068, "deviceName": "CE+T UPS设备-999", "deviceParam": { "设备地址": 1 }, "deviceType": "CE+T UPS V3.0", "extendParam": {}, "id": 1000, "manufacturer": "深圳安圣电气有限公司", "updateTime": 1732106142154 }], "total": 1001 }, "msg": "", "code": 200 } ```