Colly - Bagaimana untuk mendapatkan nilai harta kanak-kanak?

WBOY
Lepaskan: 2024-02-11 09:36:08
ke hadapan
668 orang telah melayarinya

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

editor php Xigua memperkenalkan anda kepada Colly, rangka kerja perangkak web yang berkuasa. Colly ialah rangka kerja perangkak yang ringkas dan fleksibel yang ditulis dalam bahasa Go. Ia menyediakan fungsi yang kaya, termasuk mendapatkan elemen HTML, mengekstrak data dan memproses permintaan dan respons. Apabila menggunakan Colly, kadangkala kita perlu mendapatkan nilai sub-atribut elemen HTML, seperti mendapatkan atribut href bagi pautan. Jadi, bagaimana untuk mendapatkan nilai sub-harta dalam Colly? Seterusnya, kami akan menjawab soalan anda satu persatu.

Kandungan soalan

Ini yang saya lakukan selama ini 上工作的示例页面https://www.lazada.vn/-i1701980654-s7563711492.html

Ini elemen yang saya nak dapat (tajuk produk)

...
<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>
...
Salin selepas log masuk

Saya nak dapatkan <h1> 元素之间的文本值,即 yierku 【免费送货 miễn phí vận chuyển】giày n....

Ini yang saya cuba setakat ini

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)
    })
Salin selepas log masuk

Ia memberi respons sebanyak pdp-mod-product-badge-title

Apabila saya cuba menukarnya kepada

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

Ia tidak memberi saya sebarang hasil

Penyelesaian

Gunakan func (*xmlelement) childtextsebaliknya.

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
}
Salin selepas log masuk

Atas ialah kandungan terperinci Colly - Bagaimana untuk mendapatkan nilai harta kanak-kanak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan