api地址提供的key已经失效, 仅供思路参考
运行命令: v -o getKey.exe main.v
import net.http
import os
fn create_file(file_name string, content string) {
mut file := os.create(file_name) or {
println("[DEBUG] Create ${file_name} failed!")
return
}
defer {file.close()}
file.write_string(content + '\r\n') or { println(err) }
}
fn check_file_exists(){
run_bat_file := "windows_run.bat"
// 文件检测
if !os.exists(run_bat_file) {
print(
"[DEBUG] bat_file is not found, will be created!"
)
content := '@echo off \n@REM File create by skong\n@REM wellcome to https://github.com/kongxiaoaaa\nset /P filename="FileName:"\ncmd /K "getKey.exe" %filename%\nexit'
create_file(run_bat_file, content)
exit(1)
}
}
fn featch(save_name string) bool {
// URL
url := "https://freeopenai.xyz/api.txt"
// 请求配置
config := http.FetchConfig{
user_agent: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0',
}
// 响应数据
resp := http.fetch(http.FetchConfig{ ...config, url: url }) or {
println('[DEBUG] 请求服务器: ${url} 失败')
return false
}
create_file(save_name + ".txt", resp.body)
return true
}
fn main() {
// 检测文件是否存在
check_file_exists()
// 接受命令行参数
if os.args.len != 2 {
println('Usage: \n fileName - <存储文件名>')
return
}
// 存储文件名
save_name := os.args[1]
// 启动爬虫
if featch(save_name){
print("[INFO] ${save_name} 以及存储成功!")
} else {
print("[DEBUG] 未能获取文件,存储失败!")
}
}
该脚本主要是一个Go程序,用于从命令行接收参数并检查一个.bat文件是否存在。如果文件不存在,它将创建一个,并调用一个名为`getKey.exe`的程序。此外,脚本还从一个URL抓取数据并将其存储到指定的文本文件中。当APIkey不再有效时,脚本仍能提供一种思路进行数据抓取。

被折叠的 条评论
为什么被折叠?



