Maison >développement back-end >Golang >Colly - Comment obtenir la valeur d'un bien enfant ?
l'éditeur php Xigua vous présente Colly, un puissant framework de robot d'exploration Web. Colly est un framework d'exploration simple et flexible écrit en langage Go. Il fournit des fonctions riches, notamment l'obtention d'éléments HTML, l'extraction de données et le traitement des demandes et des réponses. Lors de l'utilisation de Colly, nous avons parfois besoin d'obtenir la valeur d'un sous-attribut d'un élément HTML, comme l'obtention de l'attribut href d'un lien. Alors, comment obtenir la valeur d’une sous-propriété à Colly ? Ensuite, nous répondrons à vos questions une par une.
C'est ce que j'ai fait 上工作的示例页面https://www.lazada.vn/-i1701980654-s7563711492.html
C'est l'élément que je souhaite obtenir (titre du produit)
... <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> ...
Je veux obtenir 4a249f0d628e2318394fd9b75b4636b1
元素之间的文本值,即 yierku 【免费送货 miễn phí vận chuyển】giày n....
Voici ce que j'ai essayé jusqu'à présent
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) })
Il donne une réponse de pdp-mod-product-badge-title
Quand j'essaie de le changer en
child := e.childattrs("div[4]/div/div[3]/div[2]/div/div[1]/div[3]/div/div/h1", "文本" )
Cela ne m'a donné aucun résultat
Utilisez plutôt 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 }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!