Go语言爬虫实战:使用Goquery提取图片链接
Go语言爬虫实战:使用Goquery提取图片链接
本文将介绍如何使用Go语言和Goquery库爬取网站上的图片链接,以萌娘百科雪狐桑页面(https://zh.moegirl.org.cn/%E9%9B%AA%E7%8B%90%E6%A1%91)为例。
问题描述
我们需要从目标网页中提取所有<img>标签中的src内容,并考虑到可能存在多个同名标签的情况。为了区分不同的<img>标签,我们将添加一个特性值。
代码实现
package main
import (
'fmt'
'strings'
'github.com/PuerkitoBio/goquery'
)
func main() {
url := 'https://zh.moegirl.org.cn/%E9%9B%AA%E7%8B%90%E6%A1%91'
doc, err := goquery.NewDocument(url)
if err != nil {
fmt.Println('Error loading URL:', err)
return
}
// 定义特性值
attrName := 'data-img-src'
// 遍历所有<img>标签
doc.Find('img').Each(func(i int, s *goquery.Selection) {
// 获取特性值
imgSrc, exists := s.Attr(attrName)
if !exists {
// 如果没有特性值,则获取src属性值
imgSrc, _ = s.Attr('src')
}
// 输出imgSrc
fmt.Println(strings.TrimSpace(imgSrc))
})
}
代码解读
- 导入必要的库:
fmt用于输出结果,strings用于字符串处理,github.com/PuerkitoBio/goquery用于HTML解析。 - 定义目标网页URL。
- 使用
goquery.NewDocument函数加载网页内容。 - 定义特性值
data-img-src用于区分不同的<img>标签。 - 使用
doc.Find('img')选中所有<img>标签,并使用Each函数遍历。 - 在遍历函数中,首先尝试获取
<img>标签的data-img-src属性值。 - 如果
data-img-src属性不存在,则获取src属性值作为图片链接。 - 最后使用
fmt.Println输出提取到的图片链接。
总结
本文介绍了如何使用Go语言和Goquery库爬取网页图片链接,并通过添加特性值的方式解决了多个同名标签的问题。你可以根据实际需求修改代码,例如添加错误处理、数据存储等功能。
原文地址: https://www.cveoy.top/t/topic/jzHW 著作权归作者所有。请勿转载和采集!