英文:
How to use javascript in Golang to get a specific website elements or submit forms
问题
在Golang中,你可以使用github.com/headzoo/surf
包来执行类似的操作。以下是一个示例代码,展示了如何使用Golang获取特定网站元素或提交表单:
package main
import (
"fmt"
"log"
"net/url"
"github.com/headzoo/surf"
)
func main() {
bow := surf.NewBrowser()
err := bow.Open("http://www.example.com")
if err != nil {
log.Fatal(err)
}
// 使用JavaScript填充值
err = bow.RunScript(`example.value = "test"`, nil, nil)
if err != nil {
log.Fatal(err)
}
// 提交表单
err = bow.SubmitForm("form[name='Form1']")
if err != nil {
log.Fatal(err)
}
// 获取JavaScript返回的数据
result := bow.Find("body").Text()
fmt.Println(result)
}
请确保在运行代码之前,你已经安装了github.com/headzoo/surf
包。你可以使用以下命令进行安装:
go get github.com/headzoo/surf
这段代码使用了surf包来模拟浏览器行为,打开指定的网站,执行JavaScript代码,提交表单,并获取返回的数据。你可以根据自己的需求进行修改和扩展。
英文:
I used Qt before Golang, I can use javascript in Qt like this:
QWebView* view = new QWebView(parent);
view->load(QUrl("http://www.example.com"));
QString cmd("example.value = \"test\""); //using javascript to fill value
view->page()->mainFrame()->evaluateJavaScript(cmd);
QString cmd2("document.forms[\"Form1\"].submit()");//using javascript to submit a Form
QVariant result = view->page()->mainFrame()->evaluateJavaScript(cmd2);
qDebug() << result.toString(); //get javascript return data
How can I use javascript in Golang to get a specific website elements or submit forms.
答案1
得分: 2
你可以使用Go到JavaScript的编译器gopherjs来在Golang中使用JavaScript。
你可以在tidwall/digitalrain
项目中看到一个例子,其中digitalrain.go
文件访问了HTML元素。
js.Global.Get("document").Get("head").Call("appendChild", sheet)
js.Global.Get("document").Set("title", "whoa")
(为了一个很棒的效果)
英文:
> How can I use javascript in Golang
You can use gopherjs, a compiler from Go to JavaScript.
You can see an example in the tidwall/digitalrain
project, where the digitalrain.go
file access html elements
js.Global.Get("document").Get("head").Call("appendChild", sheet)
js.Global.Get("document").Set("title", "whoa")
(for a great effect)
答案2
得分: 1
如果你喜欢在Go中运行JS代码,可以尝试使用Otto(https://github.com/robertkrimen/otto),它是一个用Go编写的JS虚拟机,非常强大。
英文:
If you like to run JS code in Go, try Otto (https://github.com/robertkrimen/otto), it's a JS VM written in Go and very powerful.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论