在Go1之后获得exp / html的任何智能方法?

时间:2012-04-03 02:27:13

标签: go

我已经以root用户身份安装了Go版本。 Go1删除了所有exp / code。

是否有智能方法在Go1之后获取exp / *? (我的意思是如何在我当地的GOPATH中安装?)

[我的解决方案]

# pull from go repository to $HOME/repo/go
cd $HOME/repo
hg clone https://go.googlecode.com/hg/go
# make symbolic link to your GOPATH(eg. $HOME/go)
cd $HOME/go/src
ln -s $HOME/repo/go/src/pkg/exp .

5 个答案:

答案 0 :(得分:5)

exp / html库不完整,这就是为Go1删除它的原因。

但是,如果你真的想使用它,那么

go get code.google.com/p/go/src/pkg/exp/html

可以为您安装。如果你想要一个稍微更完整的html解析器,那么你可以签出http://code.google.com/p/go-html-transform/,它还有一个html5解析器以及一个基于css选择器的抓取和转换库。

编辑:显然尝试以这种方式获取包并不真正有用。看来安装它的唯一方法是检查go源代码然后从源代码安装。如果你想走这条路,这实际上是一个非常快速的无痛过程。

答案 1 :(得分:2)

Building from source是这样做的方法。但是当您执行hg update步骤时,请注意,由于exp树未标记为go1,因此hg update release将无法为您获取该值。相反,hg update weekly会得到它,而且可能就是你想要的。

编辑:在Go 1之后停止每周发布,因此hg update weekly将访问越来越陈旧的代码。更好的策略是hg update tip,然后在某处复制感兴趣的exp目录,并使用你正在使用的Go版本重新编译它,例如Go 1.0.1。

答案 2 :(得分:1)

注意:使用go 1.4(2014年第4季度),the url for that exp package will change (again)

code.google.com/p/go.exp => golang.org/x/exp

这意味着现在:

go get golang.org/x/exp

请参阅“Go 1.4 subrepo renaming”。

关于html包,它位于net/html,因此会变为(由andybalholm评论):

go get golang.org/x/net/html

答案 3 :(得分:0)

这个答案已经过时了。

这包含在golang wiki中:

https://code.google.com/p/go-wiki/wiki/InstallingExp

% cd $GOPATH/src
% hg clone https://code.google.com/p/go go-exp
requesting all changes
adding changesets
adding manifests
adding file changes
added 13323 changesets with 50185 changes to 7251 files (+5 heads)
updating to branch default
3464 files updated, 0 files merged, 0 files removed, 0 files unresolved
% mv go-exp/src/pkg/exp .
% rm -rf go-exp
% go install exp/...

然后,使用它:

import "exp/proxy"
几个月前我试过这个,但效果很好。另外,当我跑go install ...时,我只将其限制在我感兴趣的包裹中:go install exp/html(如果我记得,请正确)。

答案 4 :(得分:0)

exp包现已移至不同的存储库,以便于安装。现在你可以使用go go“golang.org/x/net/html”安装以前的exp / html。