首页 文章

转换相对于Go中的绝对URL

提问于
浏览
1

我'm writing a little web crawler, and a lot of the links on sites I' m爬行是相对的(例如,它们是 /robots.txt ) . 如何将这些相对URL转换为绝对URL(所以 /robots.txt => http://google.com/robots.txt )? Go有内置的方法吗?

1 回答

  • 4

    是的,标准库可以使用 net/url 包执行此操作 . 示例(来自标准库):

    package main
    
    import (
        "fmt"
        "log"
        "net/url"
    )
    
    func main() {
        u, err := url.Parse("../../..//search?q=dotnet")
        if err != nil {
            log.Fatal(err)
        }
        base, err := url.Parse("http://example.com/directory/")
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(base.ResolveReference(u))
    }
    

    请注意,您只需要解析绝对URL一次,然后您可以反复使用它 .

相关问题