对于我第一次使用 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 main
import (
"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 的源代码,并找到了强制转换为字符串的方法/说明,但我很迷茫,希望得到任何指点。
慕桂英3389331
相关分类