登录
首页 >  Golang >  Go问答

如何在 Go 中加入 URL?

来源:stackoverflow

时间:2024-04-12 16:15:31 255浏览 收藏

本篇文章向大家介绍《如何在 Go 中加入 URL?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

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

  • /我的/下一页/页面
  • 我的/下一页
  • //我的下一页
  • https:// different-domain.com

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


解决方案


由于超链接的不同,url 处理也不同。如上所述,锚标记中的超链接可以采用多种格式。以下是处理请求的 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 中加入 URL?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>