сканировать сайт с помощью jsoup и сделать JSON на Голанге - PullRequest
0 голосов
/ 22 октября 2018

Я хочу сканировать сайт (bbs.archusers.ir) для создания новых сообщений или тем для пользователей.

Я пытаюсь написать приведенный ниже код для имени чтения, даты последнего изменения и URL-адреса каждого раздела, сохранить в struct и сохранить struct в объект 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))

}

, какую часть я сделал неправильно?

1 Ответ

0 голосов
/ 22 октября 2018

В вашей структуре сообщения есть проблема, она должна называться 'link' с заглавной буквы k ---

type Message struct {
Name string
Date string
Link string
}

, и вывод будет правильным

{"Name":"مانجارو Manjaro", "Date": "2018-10-18 10:55:09", "Link": "viewforum.php? Id = 22"}

...