亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GoQuery 選擇提取器不起作用

GoQuery 選擇提取器不起作用

Go
收到一只叮咚 2021-11-15 20:40:36
我正在嘗試從 HTML 片段中提取目標屬性并添加到切片中<div class="pagination pagination-responsive">      <ul class="list-unstyled">           <li class="active">             <a rel="start" target="1" href="/s/Cambridge--MA--United-States">1</a>          </li>           <li>             <a rel="next" target="2" href="/s/Cambridge--MA--United-States?page=2">2</a>          </li>           <li>              <a target="3" href="/s/Cambridge--MA--United-States?page=3">3</a>          </li>           <li class="gap"><span class="gap">&hellip;</span>          </li>           <li>            <a target="17" href="/s/Cambridge--MA--United-States?page=17">17</a>          </li>           <li class="next next_page"><a target="2" rel="next" href="/s/Cambridge--MA--United-States?page=2">          <span class="screen-reader-only">Next</span><i class="icon icon-caret-right"></i></a>          </li>        </ul>        </div>    </div>pageCounts := doc.Find(".pagination-responsive .list-unstyled")    for page := range pageCounts.Nodes {        pageIterator := pageCounts.Eq(page)        li := pageIterator.Find("li a")        href, _ := li.Attr("target")        fmt.Println(href)    }有人可以指出我在這里可能缺少什么嗎?
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

li := pageIterator.Find("li a")實際上是一個元素序列,但你只需要第一個元素的屬性。在這方面,它有點像 jquery。您真正想要做的是遍歷所有鏈接,并Each在這里成為您的朋友。我發現它比用 Eq 迭代要容易得多。


這個片段對我有用:


var html = `

<div class="pagination pagination-responsive">

      <ul class="list-unstyled"> 

          <li class="active">

             <a rel="start" target="1" href="/s/Cambridge--MA--United-States">1</a>

          </li> 

          <li>

             <a rel="next" target="2" href="/s/Cambridge--MA--United-States?page=2">2</a>

          </li> 

          <li>

              <a target="3" href="/s/Cambridge--MA--United-States?page=3">3</a>

          </li> 

          <li class="gap"><span class="gap">&hellip;</span>

          </li> 

          <li>

            <a target="17" href="/s/Cambridge--MA--United-States?page=17">17</a>

          </li> 

          <li class="next next_page"><a target="2" rel="next" href="/s/Cambridge--MA--United-States?page=2">

          <span class="screen-reader-only">Next</span><i class="icon icon-caret-right"></i></a>

          </li>

        </ul>

        </div>

    </div>


`


func main() {

    doc, err := goquery.NewDocumentFromReader(strings.NewReader(html))

    pageCounts := doc.Find(".pagination-responsive .list-unstyled")

    pageCounts.Each(func(_ int, ul *goquery.Selection) {

        links := ul.Find("li a")

        links.Each(func(_ int, li *goquery.Selection) {

            if val, ok := li.Attr("target"); ok {

                fmt.Println(val)

            }

        })

    })

}


查看完整回答
反對 回復 2021-11-15
  • 1 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號