本篇文章给大家分享《Go 包“chromedp”无法从特定 url 获取文本》,覆盖了golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。
问题内容
我正在学习“go”进行网络爬行。 我想从以下网站获取一些文字:“https://edition.cnn.com/markets/fear-and-greed”
该网站需要等待时间才能加载所有 html 文本。所以我使用 chromedp 从该网站获取文本。
但是,当我运行这个脚本时,没有任何响应。代码是
package main
import (
"context"
"log"
"strings"
"GitHub.com/chromedp/chromedp"
)
func main() {
opts := append(chromedp.DefaultExecAllocatorOptions[:],
chromedp.Flag("headless", false),
)
ctx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
defer cancel()
ctx, cancel = chromedp.NewContext(ctx)
defer cancel()
var res string
err := chromedp.Run(ctx,
chromedp.Navigate("Https://edition.cnn.com/markets/fear-and-greed"),
chromedp.Text(".market-fng-gauge__dial-number-value", &res, chromedp.nodeVisible),
)
if err != nil {
log.Fatal(err)
}
log.Println(strings.TrimSpace(res))
}
出了什么问题?我真的很想用“go”来废弃这个网站。请让我知道该怎么做。
正确答案
我不知道为什么你没有得到结果,但 chromedp 似乎对你的任务来说有点太复杂了。您可能更喜欢查看 https://github.com/antchfx/htmlquery,这是一个更简单的包,用于查找 HTML 文档中的各种元素。