javascript - 是否可以在Golang中获取需要JS的网页?

标签 javascript go server

创建一个获取几个网站主页 html 的微服务。 其中之一对启用的 JS 进行检查并重定向到错误页面 如果没有检测到 JS。

Golang 有解决办法吗?

编辑:试图玩 this package (JavaScript interpreter)但没有运气..

EDIT2:2020 年,转而使用 js Puppeteer

它使用嵌入式浏览器,是一个非常成熟的实用程序库。对于复杂的网络应用程序,嵌入式浏览器确实是唯一的选择

对于用其他 js 编写的后端,我仍然会使用“Puppeteer”作为微服务

希望这对以后的人有帮助

谢谢

最佳答案

是的,这是可能的。就像前面提到的 Gonzalez,PhantomJS 是一个不错的选择。但是有一些事情我想澄清,首先在 Linux 上使用 phantomgo 存储库存在问题,因为开发人员没有提供 PanthomJS 的二进制文件。

使用此存储库的方式应使用以下说明:

  1. 去获取 github.com/k4s/phantomgo
  2. 去获取 github.com/k4s/webrowser
  3. this page 上为您的 PhantomJS 平台下载预编译的二进制文件.
  4. 将二进制文件添加到 $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/

相关文章:

javascript - 下拉列表和 IE8 的奇怪行为

go - 从 opentelemetry 的请求 header 中提取跟踪器的正确方法

go - 从 FileInfo 打开文件

C TCP套接字,发送文件的回显服务器,发送文件后挂断

javascript - Rails、JQuery Mobile 和 Javascript

Javascript - 对象初始值设定项?

javascript - HTML offsetLeft 延迟更改

go - 如何根据 golang 中的条件从 json 对象数组中获取值?

mysql - apt-get 更新操作卡在 0 显示 0% [工作中]

php - 使用 $_SERVER ['document_root' ] 有什么意义?