v语言http包的基本使用

该脚本主要是一个Go程序,用于从命令行接收参数并检查一个.bat文件是否存在。如果文件不存在,它将创建一个,并调用一个名为`getKey.exe`的程序。此外,脚本还从一个URL抓取数据并将其存储到指定的文本文件中。当APIkey不再有效时,脚本仍能提供一种思路进行数据抓取。

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] 未能获取文件,存储失败!")
	}	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值