用go官方的html库解析img alt=雪狐桑看板png class=infobox-image lazyload data-lazy-src=httpsimgmoegirlorgcncommonthumb55dE99BAAE78B90E6A191E79C8BE69DBFpng280px-E99BAAE78B90E6A191E79C8BE69DBFpng data-lazy-srcset=htt
可以使用以下代码来解析并输出img标签中的src链接:
package main
import (
"fmt"
"strings"
"golang.org/x/net/html"
)
func main() {
htmlStr := `
<html>
<body>
<div>
<div>
<div>
<main>
<div>
<div>
<article>
<div>
<div>
<table>
<tbody>
<tr>
<td>
<a>
<img alt="雪狐桑看板.png" class="infobox-image lazyload" data-lazy-src="https://img.moegirl.org.cn/common/thumb/5/5d/%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png/280px-%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png" data-lazy-srcset="https://img.moegirl.org.cn/common/thumb/5/5d/%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png/420px-%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png 1.5x, https://img.moegirl.org.cn/common/thumb/5/5d/%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png/560px-%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png 2x" data-lazy-state="done" style="" src="https://img.moegirl.org.cn/common/thumb/5/5d/%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png/280px-%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png" srcset="https://img.moegirl.org.cn/common/thumb/5/5d/%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png/420px-%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png 1.5x, https://img.moegirl.org.cn/common/thumb/5/5d/%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png/560px-%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png 2x" width="280" height="389">
</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</article>
</div>
</div>
</main>
</div>
</div>
</div>
</body>
</html>
`
reader := strings.NewReader(htmlStr)
doc, _ := html.Parse(reader)
var f func(*html.Node)
f = func(n *html.Node) {
if n.Type == html.ElementNode && n.Data == "img" {
for _, attr := range n.Attr {
if attr.Key == "src" {
fmt.Println(attr.Val)
}
}
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
f(c)
}
}
f(doc)
}
输出结果为:
https://img.moegirl.org.cn/common/thumb/5/5d/%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png/280px-%E9%9B%AA%E7%8B%90%E6%A1%91%E7%9C%8B%E6%9D%BF.png
原文地址: https://www.cveoy.top/t/topic/bS9A 著作权归作者所有。请勿转载和采集!