首頁 >後端開發 >Golang >Colly - 如何取得子屬性的值?

Colly - 如何取得子屬性的值?

WBOY
WBOY轉載
2024-02-11 09:36:08692瀏覽

Colly - 如何获取子属性的值?

php小編西瓜為您介紹Colly這個強大的網路爬蟲框架。 Colly是一個使用Go語言編寫的簡單而靈活的爬蟲框架,它提供了豐富的功能,包括獲取HTML元素、提取資料以及處理請求和回應等。在使用Colly時,有時我們需要取得HTML元素的子屬性的值,例如取得連結的href屬性。那麼,如何在Colly中取得子屬性的值呢?接下來,我們將一一為您解答。

問題內容

這是我一直在 上工作的範例頁面https://www.lazada.vn/-i1701980654-s7563711492.html

這是我想要取得的元素(產品標題)

...
<div>
   <img src="https://lzd-img-global.slatic.net/g/tps/imgextra/i1/o1cn01juoyif22n3uu7jx4r_!!6000000007107-2-tps-162-48.png" class="pdp-mod-product-badge" alt="lazmall">
    <h1 class="pdp-mod-product-badge-title">
     yierku 【free shipping miễn phí vận chuyển】giày nam mùa thu và mùa đông giày thường xu hướng nam thể thao tất cả các trận đấu giày da tăng chiều cao giày nam
    </h1>
</div>
...

我想取得 4a249f0d628e2318394fd9b75b4636b1 元素之間的文字值,即 yierku 【免費送貨 miễn phí vận chuyển】giày n....

這是我迄今為止嘗試過的

c := colly.NewCollector()
    c.OnError(func(_ *colly.Response, err error) {
        log.Println("Something went wrong:", err)
    })
    c.OnXML("/html/body", func(e *colly.XMLElement) {
        child := e.ChildAttrs("div[4]/div/div[3]/div[2]/div/div[1]/div[3]/div/div/h1", "class")
        fmt.Println(child)
        //fmt.Println(child)
    })

它給了 pdp-mod-product-badge-title 的回應

當我嘗試將其更改為

child := e.childattrs("div[4]/div/div[3]/div[2]/div/div[1]/div[3]/div/div/h1", "文字" )

它沒有給我任何結果

解決方法

使用 func (*xmlelement) childtext#相反。

package main

import (
    "fmt"

    "github.com/gocolly/colly/v2"
)

func main() {
    c := colly.NewCollector()
    c.OnError(func(_ *colly.Response, err error) {
        fmt.Println("Something went wrong:", err)
    })
    c.OnXML("/html/body", func(e *colly.XMLElement) {
        child := e.ChildText("div[4]/div/div[3]/div[2]/div/div[1]/div[3]/div/div/h1")
        fmt.Println(child)
    })
    c.Visit("https://www.lazada.vn/-i1701980654-s7563711492.html")
    // Output:
    // Yierku 【Free Shipping Miễn phí vận chuyển】Giày nam mùa thu và mùa đông giày thường xu hướng nam thể thao tất cả các trận đấu giày da tăng chiều cao giày nam
}

以上是Colly - 如何取得子屬性的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除