首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除字符串中分隔符后面的所有字符

删除字符串中分隔符后面的所有字符
EN

Stack Overflow用户
提问于 2019-10-29 06:06:56
回答 2查看 178关注 0票数 0

我正在用golang构建一个网络爬虫应用程序。

下载页面的HTML后,我分离出URL。我看到的URL中包含"#s“,例如"en.wikipedia.org/wiki/Race_condition#Computing".我想去掉"#“后面的所有字符,因为这些字符无论如何都会指向同一个页面。对如何做到这一点有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-29 07:37:46

对Luke Joshua Park的回答的改进是相对于源页面的URL来解析URL。这将从可能是页面上的相对URL (未指定方案、未指定主机、相对路径)创建绝对URL。另一个改进是检查和处理错误。

代码语言:javascript
运行
复制
func clean(pageURL, linkURL string) (string, error) {
    p, err := url.Parse(pageURL)
    if err != nil {
        return "", err
    }
    l, err := p.Parse(linkURL)
    if err != nil {
        return "", err
    }
    l.Fragment = ""   // chop off the fragment
    return l.String()
}

如果您对获取绝对URL不感兴趣,那么去掉#之后的所有内容。这是因为#在URL中的唯一有效用法是片段分隔符。

代码语言:javascript
运行
复制
 func clean(linkURL string) string {
    i := strings.LastIndexByte(linkURL, '#')
    if i < 0 {
        return linkURL
    }
    return linkURL[:i]
 }
票数 2
EN

Stack Overflow用户

发布于 2019-10-29 06:10:10

使用url包:

代码语言:javascript
运行
复制
u, _ := url.Parse("SOME_URL_HERE")
u.Fragment = ""
return u.String()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58599012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档