为了账号安全,请及时绑定邮箱和手机立即绑定

使用 jsoup 抓取站点并在 golang 中生成 json

使用 jsoup 抓取站点并在 golang 中生成 json

Go
慕田峪9158850 2023-04-24 16:50:18
我想抓取一个网站 (bbs.archusers.ir) 以便为用户制作新帖子或主题通知。我尝试在下面的代码中编写阅读名称、上次更改日期和每个部分的 URL,并将其保存到结构中,并将结构保存到 JSON 对象中。但是我的结构中的链接部分不会获得任何值,并且会出现在我的控制台中,这是我的代码    package mainimport (    "fmt"    "github.com/anaskhan96/soup"    "log"    "os"    "encoding/json")type Message struct {    Name string    Date string    link string}type myJSON struct {    Array []Message}var input []Messagefunc main() {    resp, err := soup.Get("https://bbs.archusers.ir")    if err != nil {        os.Exit(1)    }    doc := soup.HTMLParse(resp)    links := doc.Find("div", "id", "brdmain").FindAll("a")    for i := 0; i < len(links); i += 2 {        link := Message{links[i].Text(), links[i+1].Text(), links[i].Attrs()["href"] }        input = append(input, link)    }    if err != nil {        log.Fatal(err)    }    jsondat := &myJSON{input}    encjson, _ := json.Marshal(jsondat)    fmt.Println(string(encjson))}我哪一部分做错了?
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

您的 Message 结构中存在问题,它必须使用大写字母 k 命名“link”---< Link


type Message struct {

Name string

Date string

Link string

}

并且输出将是正确的


{"姓名":"مانوارو Manjaro","日期":"2018-10-18 10:55:09","链接":"viewforum.php?id=22"}


查看完整回答
反对 回复 2023-04-24
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信