如何在 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 和解码(正文)