问题标签 [goquery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
152 浏览

go - GoLang WebCrawling 删除空标签

我正在尝试爬网,在少数情况下我的 HTML 看起来像这样并包含\n& \t

在某些情况下,我将如何删除标签,\n或者\t我也需要删除它。

  1. 剥离所有 \n 以便该标签变为空。
  2. 如果它是空的,它的父级也将是空的,这也需要递归地剥离。
0 投票
1 回答
597 浏览

go - Golang - 使用 PuerkitoBio/goquery 分别为每个子元素查找文本

我是 Golang 的新手,刚刚开始学习它。我想从网站上查找一些信息并提取我需要的数据。我正在使用PuerkitoBio/goquery 包来选择元素并从中读取。我想从这段 html 中提取数据:

这是我拥有的代码:

这打印了我:

在此示例中,如何将每个li element的文本分别打印为两个不同的变量?

0 投票
0 回答
38 浏览

go - 如何在节点中查找元素

我正在尝试使用goquery从 HTML 文档中获取数据。HTML 的结构如下:

我想得到的是第一个 Node 对象的 tbody 的内容。我得到这样的第一个节点:

但是,由于结构上没有Find方法Node,我想知道如何tbody从 Node 结构中获取?

0 投票
1 回答
1127 浏览

go - 如何使用 goquery 查找具有特定 id 的元素

我需要使用 goquery 查找表的元素,就像我做 jquery 方式一样:

我正在通过 client.PostForm 得到回复,但我认为这并不重要。

使用 goquery 我尝试这样做:

但我什么也得不到。节点数组为空。我究竟做错了什么?

0 投票
1 回答
113 浏览

go - goQuery 选择有点迷失

我是 Go 新手,我正在尝试通过制作一个转发机器人来学习它。无论如何,我遇到了一个我不知道如何解决的问题。

我有以下结构:

我正在尝试使用 goQuery 获取这些值,如下所示:

但是当我尝试将值设置为 Post 结构时,我得到了这个错误:

好的,这是有道理的,但是我怎样才能把它转换成字符串呢?我试过 s.Text() 但它不起作用。我想过制作一个返回字符串的函数,但我不确定这是否可行。

如果有人可以帮助我,我将不胜感激,在此先感谢!

0 投票
0 回答
135 浏览

html - 使用 goquery 将 html 文本和嵌套标签转换为文字字符串

我正在制作 Web 应用程序,它通过使用 goquery 抓取来检索嵌套标签中的文本。

我想以文本形式显示包含文本的文本和标签,例如“<'h1'>Hello World!<'/h1'>”。

item - 它是 goquery.Selection - item.Text() 和节点,_ := item.Html(), fmt.Sprintf("%s",node) 被使用,但我的 html 模板总是以 html 形式显示抓取的文本.

这是抓取边缘站点并显示到 index.html 模板中的示例。 在此处输入图像描述

我设置 url 是 theverge.com,选择器是 class,

下面是Go中的源代码

块引用

,

如何将 html 标记和内部文本显示为天真的文本?

0 投票
0 回答
53 浏览

go - 对 GoQuery 感到困惑

我正在制作一个机器人,它将在 Reddit 上存储超过 1000 个赞的帖子。我打算存储链接和网址。

我很难找到一种方法来匹配超过 1000 个赞的帖子的链接/网址,我正在使用以下 GoQuery 函数:

获得赞成票:

获取网址:

获取帖子标题:

问题是,尽管我可以获得适量的点赞,但帖子中的一些链接和网址来自点赞数少于 1000 的帖子,我不希望这样。

我试图复制我获得赞成票的方式,但它也不起作用。

希望有人可以帮助我或给我一个见解,在此先感谢!

如果帖子太长,请告诉我,我会创建一个要点。

0 投票
1 回答
54 浏览

json - 检查结构中的结构是否存在

我有一个 json 提要,并试图检查结构中的结构是否存在。

这是解组过程:

在某些情况下,Video存在,而在其他情况下,它不存在。我想在 if 语句中验证这一点,类似if data.Video != nil但这似乎无法编译(我得到invalid Operation)。如何检查是否Video存在?

0 投票
1 回答
120 浏览

regex - URL中字母和数字的正则表达式

我正在尝试匹配一些 URLS 作为使用 Golang 的概念证明。我不是最擅长正则表达式的人,我需要一些与反斜杠后的季号或剧集号相匹配的东西。这是一个例子:

季节可以达到两位数(/s12, /s13),剧集最多可以达到三集(例如/e100)。最好的方法是什么?

编辑:所以这是我到目前为止所尝试的:

或者

似乎适用于单个数字,但不是当你开始做类似的事情时/e12/。当我试图找到两者都匹配的东西时,比如

它不会选择只有一个数字(例如/s2/)的剧集或系列。

0 投票
1 回答
217 浏览

go - 等待所有 goroutine 完成并合并结果

我很难理解 goroutines、channels 和所有同步的东西。我相信我理解这些概念,但我缺少几行来连接我拥有的所有信息。此外,大多数示例都感觉​​太简单了,因此我无法正确掌握实际发生的情况。

我正在为网站编写一个简单的分析工具。其中一项功能是检查是否可以访问本网站上的所有链接。显然,每个网站上都有很多链接,所以它似乎是一个很好的 goroutines 候选者。问题是,在安排了所有 goroutine 之后,我需要取回所有结果,以便一次将它们全部呈现给用户。

到目前为止,我所拥有的是:

我的代码似乎可以工作,但我觉得我错过了一些东西(或者至少它可能会更好)。我有几个担忧/问题:

  1. 如果网站包含 1000 个链接,我会生成 1000 个 goroutine,我相信它并不那么聪明。可能我需要一个工作池或类似的东西,对吧?
  2. 是否可以仅在此示例中使用通道?我不知道goquery会找到多少个链接,所以我不能轻易地将range元素发送到频道。另外,我不能轻易地向done另一个频道发送一些消息,因为我不知道什么时候Each会结束。此通道上的每个for range通道都处于阻塞状态,因此应用程序正在恢复同步。
  3. 我相信这在应用程序中很常见,您开始迭代某些东西,并且您希望在每次迭代中做一些异步工作,并在迭代结束时收集所有结果。我无法理解这个概念。我想不出如何处理这种情况。