Golang 模拟浏览器操作:打开网站、填写表单并发送请求
以下是一个简单的示例程序,可以使用golang模拟打开浏览器并录入数据后请求:
package main
import (
"fmt"
"net/http"
"net/url"
"os/exec"
"runtime"
)
func main() {
// 打开浏览器并输入数据
openBrowser('https://www.baidu.com')
// 模拟输入数据
formData := url.Values{}
formData.Set('username', 'test')
formData.Set('password', '123456')
// 发送POST请求
resp, err := http.PostForm('http://example.com/login', formData)
if err != nil {
fmt.Println('请求失败:', err)
return
}
defer resp.Body.Close()
// 输出响应结果
fmt.Println('响应状态码:', resp.StatusCode)
}
// 打开浏览器
func openBrowser(url string) error {
var err error
switch runtime.GOOS {
case 'windows':
err = exec.Command('cmd', '/c', 'start', url).Start()
case 'darwin':
err = exec.Command('open', url).Start()
default:
err = fmt.Errorf('unsupported platform')
}
if err != nil {
fmt.Println('打开浏览器失败:', err)
}
return err
}
在上述示例代码中,我们首先使用openBrowser函数打开了指定的网址(在这里我们使用了百度搜索页面作为示例)。接着,我们使用url.Values来模拟表单数据,并使用http.PostForm函数发送POST请求。最后,我们输出了响应状态码。
需要注意的是,这种方式实际上是通过发送HTTP请求来模拟用户的操作,而不是真正地在浏览器中进行操作。因此,如果需要模拟浏览器操作的话,还需要使用其他的工具或库来实现,例如Selenium WebDriver。
原文地址: https://www.cveoy.top/t/topic/nbLG 著作权归作者所有。请勿转载和采集!