如何在 Golang 中使用 javascript 获取特定的网站元素或提交表单

Posted

技术标签:

【中文标题】如何在 Golang 中使用 javascript 获取特定的网站元素或提交表单【英文标题】:How to use javascript in Golang to get a specific website elements or submit forms 【发布时间】:2015-02-08 06:15:41 【问题描述】:

我在 Golang 之前使用 Qt,我可以像这样在 Qt 中使用 javascript

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

如何在 Golang 中使用 javascript 来获取特定的网站元素或提交表单。

【问题讨论】:

你是在客户端还是在服务器上运行 Go? 【参考方案1】:

如何在 Golang 中使用 javascript

你可以使用gopherjs,一个从 Go 到 JavaScript 的编译器。

您可以在tidwall/digitalrain项目中看到一个示例,其中digitalrain.go文件访问html元素

js.Global.Get("document").Get("head").Call("appendChild", sheet)
js.Global.Get("document").Set("title", "whoa")

(对于a great effect)

【讨论】:

有没有从目标 URL 获取元素或提交表单的示例 @GreenBird 不是直接来自 gpoherjs 项目本身 (github.com/gopherjs/gopherjs/…) @GreenBird 虽然我的旧答案 ***.com/a/27034623/6309 是关于 POST。 我找到了this,因为我用的是windows,所以没有想象中那么容易。【参考方案2】:

如果你喜欢在 Go 中运行 JS 代码,试试 Otto (https://github.com/robertkrimen/otto),它是一个用 Go 编写的 JS VM,非常强大。

【讨论】:

以上是关于如何在 Golang 中使用 javascript 获取特定的网站元素或提交表单的主要内容,如果未能解决你的问题,请参考以下文章

GoLang/Javascript:JSON POST 上的空 postForm 和解码(正文)

为创建Golang GUI程序选择合适的库

Golang 后端到 javascript JSON Parse

golang生成JSON及解析JSON

如何在golang中使用LDFLAGS的相对路径

在 golang 中如何使用切片进行复制? [关闭]