对于我第一次使用 Go 编程的尝试,我尝试自动从Psiu Puxa下载可爱的壁纸,根据 HTML 帖子中的标题保存图像的文件名。但是,我还没有找到如何将文本节点的值作为字符串获取。示例 HTML,简化:<div class="post"> <a class="w-inline-block post-name-link" href="/posts/mars-30"> <h4>#80 Martian Landscape</h4> </a></div><div class="post"> <a class="w-inline-block post-name-link" href="#"> <h4><strong>#79 MARTIAN terrain</strong></h4> </a></div>我的 Go 包:package mainimport ( "fmt" "net/http" "io/ioutil" "github.com/moovweb/gokogiri")func main() { resp, _ := http.Get("http://psiupuxa3.webflow.io/") page, _ := ioutil.ReadAll(resp.Body) resp.Body.Close() doc, _ := gokogiri.ParseHtml(page) res, _ := doc.Search("//div[@class='post']") defer doc.Free() for i := range res { postTitleRes, _ := res[i].Search("a[contains(@class,'post-name-link')]//text()") fmt.Printf("%T: %v\n", postTitleRes, postTitleRes) }}结果:[]xml.Node: [#80 Martian Landscape][]xml.Node: [#79 MARTIAN terrain][]xml.Node: [#78 MARTIAN TERRAIN]#79 MARTIAN terrain在保存文件时,如何获取等作为字符串供以后使用?我试过了,postTitle := postTitleRes.String()但该方法显然不适用于xml.Node. 我花了一些时间查看 Gokogiri 的源代码,并找到了强制转换为字符串的方法/说明,但我很迷茫,希望得到任何指点。
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
那里有一组 xml.Node 结构。您需要访问该数组中包含的节点。
如果你确定你有一个元素,那么你可以
postTitleRes[0].Content()
或捕获所有这些节点:
for _, node := range postTitleRes {
fmt.Printf("%T: %v\n", node, node.Content())
}
您可以看到,Content一旦您拥有一个单一的 xml.Node ,该函数应该可供您使用。定义。
- 1 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消