go - Golang - 使用 PuerkitoBio/goquery 分别为每个子元素查找文本
问题描述
我是 Golang 的新手,刚刚开始学习它。我想从网站上查找一些信息并提取我需要的数据。我正在使用PuerkitoBio/goquery 包来选择元素并从中读取。我想从这段 html 中提取数据:
<ul class="cases-counter">
<li>Cases: <strong>457</strong><br></li>
<li>Active: <strong>16</strong><br></li>
</ul>
这是我拥有的代码:
doc.Find(".cases-counter").Each(func(i int, s *goquery.Selection) {
text := s.Find("li").Text()
fmt.Print(i)
fmt.Printf(text)
})
这打印了我:
0Cases: 457Active: 16
在此示例中,如何将每个li element
的文本分别打印为两个不同的变量?
解决方案
你可以试试这个。
func ExampleNewDocumentFromReader_string() {
data := `
<html>
<ul class="cases-counter">
<li id="Cases">Cases: <strong>457</strong><br></li>
<li id="Active">Active: <strong>16</strong><br></li>
</ul>
</html>`
doc, err := goquery.NewDocumentFromReader(strings.NewReader(data))
if err != nil {
log.Fatal(err)
}
doc.Find(".cases-counter").Each(func(i int, s *goquery.Selection) {
Cases := s.Find("#Cases").Text()
Active := s.Find("#Active").Text()
fmt.Printf("Review %d: %s, %s\n", i, Cases, Active)
})
}
func main() {
ExampleNewDocumentFromReader_string()
}
推荐阅读
- informix - Informix:错误 -528 超出最大输出行大小 (32767)
- java - javax.ws.rs.ProcessingException:RESTEASY004655:无法调用请求
- json - 如何修复缺少的 json 块分隔符
- nginx - Kuberentes 入口速率限制改变重写目标基础
- mysql - SequelizeEagerLoadingError while include: [{model: , as: ' ' }]
- json - 如何通过 id 访问整个对象
- java - 如何在春季跟随重定向其他链接与服务器的帖子
- karate - 我们可以在空手道功能中访问 spring bean 吗?
- elasticsearch - ElasticSearch中2个不同字段之间的日期范围
- c++ - 成员函数模板推导或其他方法让编译器知道如何调用函数