L'éditeur php Xiaoxin est là pour présenter une méthode permettant d'accéder aux éléments HTML dynamiques via l'exploration du Web. Lorsque nous explorons des pages Web, nous rencontrons parfois du contenu généré dynamiquement qui ne peut être obtenu directement tant que la page Web n'est pas chargée. Heureusement, il existe des outils et des techniques que nous pouvons utiliser pour résoudre ce problème. Cet article présentera une méthode basée sur PHP qui peut être utilisée pour explorer et accéder facilement aux éléments HTML dynamiques. Nous allons jeter un coup d'oeil!
J'utilise go-rod pour le web scraping. Je souhaite accéder aux liens dans le flux <a>
.
Pour réaliser cela a
可见,我必须完成一个搜索器,它是一个 input
,具有下一个格式(没有 submit
) :
<form> <input> <!--this is the searcher--> <form/>
Alors quand j'ai fini, voici à quoi je veux accéder a
:
Jusqu’ici, tout va bien. Voici le code que j'ai utilisé pour compléter le moteur de recherche :
//page's url page := rod.new().mustconnect().mustpage("https://www.sofascore.com/") //acept cookies alert page.mustelement("cookiesalertselector...").mustclick() //completes the searcher el := page.mustelement(`searcherselector...`) el.mustinput("lionel messi")
Maintenant, le problème se pose lorsque je veux cliquer sur le a
qui apparaît après avoir terminé la recherche.
J'ai essayé ceci :
diviwant := page.mustelement("aselector...") diviwant.mustclick()
Et ça :
diviwant := page.mustelement("aselector...").mustwaitvisible() diviwant.mustclick()
Cependant, ils me renvoient tous la même erreur :
panic: {-32000 node is detached from document } goroutine 1 [running]: github.com/go-rod/rod/lib/utils.glob..func2({0x100742dc0?, 0x140002bad50?}) /users/lucastomicbenitez/go/pkg/mod/github.com/go-rod/[email protected]/lib/utils/utils.go:65 +0x24 github.com/go-rod/rod.gene.func1({0x14000281ca0?, 0x1003a98b7?, 0x4?}) /users/lucastomicbenitez/go/pkg/mod/github.com/go-rod/[email protected]/must.go:36 +0x64 github.com/go-rod/rod.(*element).mustclick(0x14000289320) /users/lucastomicbenitez/go/pkg/mod/github.com/go-rod/[email protected]/must.go:729 +0x9c main.main() /users/lucastomicbenitez/development/golang/evolutionaryalgorithm/main/main.go:22 +0x9c exit status 2
Alors, en cherchant des solutions, j'ai trouvé ce problème github et j'ai essayé d'obtenir le lien via cette méthode :
link := page.musteval(`()=> document.queryselector('aselector...').href`)
Mais ça renvoie ceci :
panic: eval js error: TypeError: Cannot read properties of null (reading 'href')
Cependant, je suis presque sûr que le sélecteur est correct. Qu'ai-je fait de mal?
Comme @hymns for disco l'a dit dans les commentaires, j'ai juste dû attendre un moment après que le chercheur ait terminé.
el.MustInput("Lionel Messi") time.Sleep(time.Second) link := page.MustEval(`()=> document.querySelector('aSelector...').href`)
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!