创建一个获取几个网站主页 html 的微服务。 其中之一对启用的 JS 进行检查并重定向到错误页面 如果没有检测到 JS。
Golang 有解决办法吗?
编辑:试图玩 this package (JavaScript interpreter)但没有运气..
EDIT2:2020 年,转而使用 js Puppeteer
它使用嵌入式浏览器,是一个非常成熟的实用程序库。对于复杂的网络应用程序,嵌入式浏览器确实是唯一的选择
对于用其他 js 编写的后端,我仍然会使用“Puppeteer”作为微服务
希望这对以后的人有帮助
谢谢
最佳答案
是的,这是可能的。就像前面提到的 Gonzalez,PhantomJS 是一个不错的选择。但是有一些事情我想澄清,首先在 Linux 上使用 phantomgo 存储库存在问题,因为开发人员没有提供 PanthomJS 的二进制文件。
使用此存储库的方式应使用以下说明:
去获取 github.com/k4s/phantomgo
去获取 github.com/k4s/webrowser
- 在 this page 上为您的 PhantomJS 平台下载预编译的二进制文件.
- 将二进制文件添加到
$GOPATH/src/github.com/k4s/phantomgo/phantomgojs
文件夹。
import (
"fmt"
"io/ioutil"
"net/http"
. "github.com/k4s/webrowser"
)
func main() {
p := &Param{
Method: "GET",
Url: "http://google.com",
Header: http.Header{"Cookie": []string{"your cookie"}},
UsePhantomJS: true,
}
brower := NewWebrowse()
resp, err := brower.Download(p)
if err != nil {
fmt.Println(err)
}
body, err := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
fmt.Println(resp.Cookies())
}
关于javascript - 是否可以在Golang中获取需要JS的网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44000154/