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

我想从 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()

    }


桃花长相依
浏览 199回答 2
2回答

largeQ

Selection.Attr 返回两个值:属性值和一个布尔值,说明该属性是否存在(如果为假,则属性值为空)。当您忽略多个返回值时,Go 不喜欢它,因此您必须将代码更改为以下内容:doc.Find("table.v65-productDisplay a.productnamecolor").Each(func(i int, s *goquery.Selection) {&nbsp; &nbsp; band, ok := s.Attr("href")&nbsp; &nbsp; if ok {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Printf(band)&nbsp; &nbsp; }})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go