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

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

WBOY
發布: 2024-02-11 09:36:08
轉載
696 人瀏覽過

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>
...
登入後複製

我想取得 <h1> 元素之間的文字值,即 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
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板