gpt4 book ai didi

go - 如何在 Go 中加入 URL?

转载 作者:行者123 更新时间:2023-12-01 22:40:26 29 4
gpt4 key购买 nike

我正在 GO 中创建一个网络爬虫。并经过解析和页面上的所有 URL,在某些情况下我会获得不同格式的超链接:

  • /my/next/page
  • 我的/下一页/页面
  • //my_next_page
  • https://different-domain.com

  • 如您所见,这里有很多组合,在某些情况下,URL 是完全不同的域。 URL 的常规连接在这里不起作用。如何正确连接 URL,以便每个生成的 URL 连接都可以再次输入爬虫以持续解析和抓取?

    最佳答案

    由于超链接的不同,URL 的处理方式也不同。如上所述, anchor 标记中的超链接可以有多种格式。这是处理请求的 URL 与爬网的连接以及分别到该 URL 的超链接的解决方案。

    func joinURLs(baseURL, hyperlink string) string {
    parse, err := url.Parse(hyperlink)
    if err != nil {
    return ""
    }
    base, err := url.Parse(baseURL)
    if err != nil {
    return ""
    }
    nextURLToCrawl := base.ResolveReference(parse)
    return nextURLToCrawl.String()
    }

    这个函数最好的地方是它可以处理不同域上的函数,而无需维护检查主机名是否相同。现在您的代码更具声明性。

    关于go - 如何在 Go 中加入 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60993326/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com