为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Go语言中获取属性href值的值

如何在Go语言中获取属性href值的值

Go
桃花长相依 2021-11-01 16:31:11
我想从 html 内容解析锚链接。/* 我的 HTML 内容示例<a class="productnamecolor colors_productname" href="http://www.cccxcxc.com/Nautical-Bubble-Romper-p/s15brpnt03.htm">*/      <a class="productnamecolor colors_productname" href="http://www.dewewe.com/Nautical-Bubble-Romper-p/erewrwer.htm">    <a class="productnamecolor colors_productname" href="http://www.sdsddsd.com/Nautical-Bubble-Romper-p/dsadadasd.htm"> */ 锚有href,我想获得Href的值。但这给了我错误..错误:单值上下文中的多值 s.Attr()package main    import (      "fmt"      "log"      "github.com/PuerkitoBio/goquery"    )    func ExampleScrape() {      doc, err := goquery.NewDocument("http://www.myurl.com/category-s/1828.htm")       if err != nil {        log.Fatal(err)      }    /* **my sample html after http open** <a class="productnamecolor colors_productname" href="http://www.cccxcxc.com/Nautical-Bubble-Romper-p/s15brpnt03.htm">*/      <a class="productnamecolor colors_productname" href="http://www.dewewe.com/Nautical-Bubble-Romper-p/erewrwer.htm">    <a class="productnamecolor colors_productname" href="http://www.sdsddsd.com/Nautical-Bubble-Romper-p/dsadadasd.htm"> ***/    doc.Find("table.v65-productDisplay a.productnamecolor").Each(func(i int, s *goquery.Selection) {        band := s.Attr("href") // here i want to get attribute " href " value. this is not working here.        fmt.Printf(band)      })    }    func main() {      ExampleScrape()    }
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

Selection.Attr 返回两个值:属性值和一个布尔值,说明该属性是否存在(如果为假,则属性值为空)。


当您忽略多个返回值时,Go 不喜欢它,因此您必须将代码更改为以下内容:


doc.Find("table.v65-productDisplay a.productnamecolor").Each(func(i int, s *goquery.Selection) {

    band, ok := s.Attr("href")

    if ok {

        fmt.Printf(band)

    }

})


查看完整回答
反对 回复 2021-11-01
  • 2 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信