猿问

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

我想抓取一个网站 (bbs.archusers.ir) 以便为用户制作新帖子或主题通知。


我尝试在下面的代码中编写阅读名称、上次更改日期和每个部分的 URL,并将其保存到结构中,并将结构保存到 JSON 对象中。但是我的结构中的链接部分不会获得任何值,并且会出现在我的控制台中,这是我的代码


    package main


import (

    "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 []Message


func 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))


}

我哪一部分做错了?


慕田峪9158850
浏览 95回答 1
1回答

繁星coding

您的 Message 结构中存在问题,它必须使用大写字母 k 命名“link”---< Linktype Message struct {Name stringDate stringLink string}并且输出将是正确的{"姓名":"مانوارو Manjaro","日期":"2018-10-18 10:55:09","链接":"viewforum.php?id=22"}
随时随地看视频慕课网APP

相关分类

Go
我要回答