- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 goquery从网页中提取信息片段的包。请在下面查看我的代码。运行函数后的结果是:
Description field: text/html; charset=iso-8859-15
Description field: width=device-width
Description field: THIS IS THE TEXT I WANT TO EXTRACT
我快到了,但是我只想获取名称 == '描述' 的元字段。不幸的是,我不知道如何将这个额外条件添加到我的代码中。
func ExampleScrapeDescription() {
htmlCode :=
`<!doctype html>
<html lang="NL">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15">
<meta name="viewport" content="width=device-width">
<meta name="description" content="THIS IS THE TEXT I WANT TO EXTRACT">
<title>page title</title>
</head>
<body class="fixedHeader">
page body
</body>
</html>`
doc, err := goquery.NewDocumentFromReader(strings.NewReader((htmlCode)))
if err != nil {
log.Fatal(err)
}
doc.Find("meta").Each(func(i int, s *goquery.Selection) {
description, _ := s.Attr("content")
fmt.Printf("Description field: %s\n", description)
})
}
最佳答案
只需检查 name
属性的值是否匹配 "description"
:
doc.Find("meta").Each(func(i int, s *goquery.Selection) {
if name, _ := s.Attr("name"); name == "description" {
description, _ := s.Attr("content")
fmt.Printf("Description field: %s\n", description)
}
})
您可能希望以不区分大小写的方式比较 name
属性的值,为此您可以使用 strings.EqualFold()
:
if name, _ := s.Attr("name"); strings.EqualFold(name, "description") {
// proceed to extract and use the content of description
}
关于go - 使用 goquery 提取元描述字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30474991/
我一直在尝试将响应加载到 goquery 文档中,但它似乎失败了(尽管它没有引发错误)。 我试图加载的响应来自: https://www.bbcgoodfood.com/search_api_ajax
我正在尝试提取目标属性并添加到 HTML 片段中的 slice 1
假设我有这个 HTML 页面。我想用 Go 解析它和 goquery : Heading 1 Stuff1
关于一些背景信息,我是 Go 的新手(3 或 4 天),但我开始适应它了。 我正在尝试使用 goquery解析网页。 (最终我想把一些数据放在数据库中)。对于我的问题,一个例子将是解释它的最简单方法:
我有一个 Python program检查亚马逊的产品价格是否低于预期。 出于学习目的并使其更具可移植性,我将该代码移植到 Go。这是我的第一个 Go 程序。 为了解析 html,我使用了 goque
在 GoQuery 中,如果我创建一个片段如下: doc, err := goquery.NewDocument(s) if err != nil { log.Fata
是否有可能使用 goquery 检索文档文档类型? 我已经尝试了几件事,但都奏效了。我想这是可能的,因为 NodeName func 已经切换到“html.DoctypeNode”大小写。 该代码没有
我有一个大致如下所示的 html: Movies A Song For Jenny (2015) Rating: PG Running Time (minutes): 77
我几天前才开始学习 Go,所以请多多包涵。 :) 我正在使用 goquery 从网页中获取文本。像这样: package main import ( "fmt" "log" "
我正在尝试使用 GoQuery 从页面获取内容,但由于某些原因我无法在换行符处进行拆分 (br)。 HTML,看起来像这样: I'm skipped Text In
我正在使用 goquery从网页中提取信息片段的包。请在下面查看我的代码。运行函数后的结果是: Description field: text/html; charset=iso-8859-15 De
我想提取 elementB ,然后在元素 C 之前停止和 D - 即不提取 .text内容elementC和 elementD .但是,我只知道如何提取整个 div 文本,使用 Contents().
为什么下面的测试会失败? func TestGetFirstElementHtml(t *testing.T) { test := `My paragraph` doc, _ := g
在 jQuery 和 CSS 中,您可以使用 >仅指向直接子元素的字符。 这适用于 Goquery用类似 doc.Find("body > ul") 的东西, 但是当你已经有了 *goquery.Se
是的,很抱歉标题没有解释任何内容。我需要举个例子。 这是另一个 question 的延续我发帖解决了一个问题,但不是所有问题。我已将该问题的大部分背景信息放入这个问题中。此外,我只研究了大约 5 天的
我是 Go 的新手。我正在使用 goquery从 HTML 页面中提取数据。但问题是我要查找的数据不受任何 HTML 标记的限制。它是 之后的简单文本标签。我怎样才能提取它? 编辑:这是 HTML
我想使用 Go 检索具有特定 ID 的所有标签。显然,最简单的方法是使用 goquery。 假设我正在网站 site 中寻找 ID 为 MyTag 的 ul 标签。我想列出这样一个ul中包含的所有li
我正在尝试使用 GoQuery 获取藤蔓的 .mp4 视频源。但是,当我运行它时,我什么也得不到,没有错误,也没有返回。只是一个空行。 package main import ( "fmt"
Goquery Syntax-wise, it is as close as possible to jQuery, with the same function names when possibl
我想使用 goquery 获取 DOM 的类型名称,如 'a'、img'、'tr'、'td'、'center'。我怎样才能得到? package main import ( "github.c
我是一名优秀的程序员,十分优秀!