gpt4 book ai didi

Go 经常解析失败(goquery)

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:02 25 4
gpt4 key购买 nike

我有一个 Python program检查亚马逊的产品价格是否低于预期。

出于学习目的并使其更具可移植性,我将该代码移植到 Go。这是我的第一个 Go 程序。

为了解析 html,我使用了 goquery .到目前为止,我只是想检索产品的名称。这是代码:

package main

import (
"flag"
"fmt"
"log"

"github.com/PuerkitoBio/goquery"
)

func main() {
url := flag.String("url", "", "URL of the product")
flag.Parse()

doc, err := goquery.NewDocument(*url)
if err != nil {
log.Fatal(err)
}

name := doc.Find("#productTitle").Text()
fmt.Println(name)
}

我遇到了什么问题?它在 8 次执行中大约有 1 次返回名称。这绝对是不正确的。这不是亚马逊的问题,也不是标签 #productTitle 的问题,因为 Python 代码每次都能正常工作。

可能出了什么问题?我怎样才能进一步调试这个问题?我重复一遍,第一个使用 Go 的代码 :)

最佳答案

我发现了问题:)

我的 Python 代码和 Go 代码有些不同。在 Python 中,我发布了一个真正的用户代理 header ,而在 Go 中,它是该包的默认 header 。

这意味着,实际上是亚马逊阻止了大部分尝试,并返回了验证码。

关于Go 经常解析失败(goquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57774699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com