我在为我的 graphql 解析器创建有效负载时遇到问题。如何重写它以返回完成的数组?我被困在里面,无法返回数据。c.OnHTML("article", func(e *colly.HTMLElement) {}type Article struct { Title string `bson:"title"` Source string `bson:"source"` Url string `bson:"url"` Timestamp string `bson:"timestamp"`}func (r *RootResolver) News() ([]models.Article, error) { c := colly.NewCollector( colly.MaxDepth(2), colly.Async(), ) c.Limit(&colly.LimitRule{Parallelism: 10}) articles := []models.Article{} c.OnHTML("article", func(e *colly.HTMLElement) { articleModel := []models.Article{ { Title: e.ChildText("h3 a"), Source: e.ChildText("a[data-n-tid]"), Timestamp: e.ChildAttr("div:last-child time", "datetime"), Url: e.ChildAttr("a[href]", "href"), }, } fmt.Println(articleModel) }) c.Visit(SOMEURLHERE) c.Wait() return articles, nil}
1 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
如果需要获取完整的文章列表,则需要将新文章追加到函数内部的切片中,而不是创建新切片。articles
c.OnHTML
并返回方法的切片末尾。articles
News()
articles = append(articles, models.Article{ Title: e.ChildText("h3 a"), Source: e.ChildText("a[data-n-tid]"), Timestamp: e.ChildAttr("div:last-child time", "datetime"), Url: e.ChildAttr("a[href]", "href"), })
在当前实现中, 创建类型的空片。在 内部,您创建了另一个名为 和 元素的类型切片。这两个切片没有任何联系。因此,您需要将新元素附加到切片中,并将其与文章一起返回。articles := []models.Article{}
models.Article
c.OnHTML
models.Article
articleModel
articles
- 1 回答
- 0 关注
- 74 浏览
添加回答
举报
0/150
提交
取消