php小编小新在这里为大家介绍一种方法,可以通过网页抓取访问动态HTML元素。当我们在进行网页抓取时,有时会遇到一些动态生成的内容,这些内容在网页加载完成之前无法直接获取。幸运的是,我们可以利用一些工具和技术来解决这个问题。本文将介绍一种基于PHP的方法,使用它可以轻松地抓取访问动态HTML元素。让我们一起来看看吧!
问题内容
我正在使用 go-rod 进行网页抓取。我想访问动态 内的链接。为了使这个 a 可见,我必须完成一个搜索器,它是一个 input ,具有下一个格式(没有 submit):
登录后复制
所以,当我完成后,出现我要访问的a:
到这里,一切都还好。这是我用来完成搜索器的代码:
//page's urlpage := rod.new().mustconnect().mustpage("https://www.sofascore.com/")//acept cookies alertpage.mustelement("cookiesalertselector...").mustclick()//completes the searcherel := page.mustelement(`searcherselector...`)el.mustinput("lionel messi")
登录后复制
现在问题出现了,当我想点击完成搜索后显示的a时。
我尝试过这个:
立即学习“前端免费学习笔记(深入)”;
diviwant := page.mustelement("aselector...")diviwant.mustclick()
登录后复制
还有这个:
diviwant := page.mustelement("aselector...").mustwaitvisible()diviwant.mustclick()
登录后复制
但是,它们都返回给我相同的错误:
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
登录后复制
所以,在寻找一些解决方案时,我发现了这个 github 问题并尝试通过此方法获取链接:
link := page.musteval(`()=> document.queryselector('aselector...').href`)
登录后复制
但它返回这个:
panic: eval js error: TypeError: Cannot read properties of null(reading 'href')
登录后复制
但是,我很确定选择器是正确的。我做错了什么?
解决方法
正如@hymns for disco在评论中所说,我只需要在搜索器完成后等待一段时间即可。
el.MustInput("Lionel Messi")time.Sleep(time.Second)link := page.MustEval(`()=> document.querySelector('aSelector...').href`)
登录后复制
以上就是如何通过网页抓取访问动态 HTML 元素?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2484684.html