问题标签 [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 回答
112 浏览

string - 在 golang 中使用 goquery grep 解析 td 仅需要行

我从 ajax 请求中得到如下输出:

当我尝试td使用以下代码段使用 goquery 进行解析时:

输出:

当我尝试使用b标签而不是td我得到如下输出:

我试图实现的输出是只得到Organization: Google LLC. 我最近开始使用 StackOverflow 和 golang 新手,所以我不熟悉环境,如果我犯了错误,请告诉我。

0 投票
2 回答
171 浏览

go - 如何使用 goquery 获取 select > option 的值

如果有这样的html:

当我写这样的代码时:

我还可以获得选项的 text() ,如下所示:

但我不知道如何通过使用 goquery 来获取选项的值,.Attr() 方法也不能用来获取值

0 投票
0 回答
35 浏览

html - 使用 goquery 用“加载更多”文章抓取网页

我已经使用goquery构建了一个网络爬虫。但是它只能检索前 14 或 15 篇文章的元数据,因为剩余的文章只能在手动单击“加载更多”按钮后才能看到。

新文章不是异步加载的,因为我实际上可以在它们变得可见后找到它们的文本出现在“查看页面源”选项卡下(根据我对“异步”主题的有限知识)。所以我想这是一个优点。

我该如何处理这个问题?除了最初的 15 篇文章,我还有哪些选择?

0 投票
1 回答
97 浏览

image - 网络爬虫在第一页停止

我正在开发一个应该像这样工作的网络爬虫:

  1. 访问一个网站,抓取该网站的所有链接
  2. 下载所有图像(从起始页开始)
  3. 如果当前页面上没有图像,请转到第 1 步中找到的下一个链接并执行第 2 步和第 3 步,直到没有任何链接/图像。

似乎下面的代码在某种程度上是有效的,比如当我尝试抓取一些网站时,我会下载一些图片。

(即使我不明白我得到的图像,因为我在网站上找不到它们,好像爬虫不是从网站的起始页开始的)

在几张图片(~25-500)之后,爬虫完成并停止,没有错误,它只是停止。我在多个网站上尝试了这个,在几张图片之后它就停止了。我认为爬虫以某种方式忽略了第 3 步。

0 投票
1 回答
68 浏览

html - 奇怪的 len 函数(或字符串)行为

我正在尝试使用goquery解析时间表内容以便稍后使用它。但我有一个问题。

我有两个功能。第一个获取 html 文档并搜索令牌 (csrfmiddlewaretoken),第二个使用此令牌发送请求并提取信息。完成从页面中提取所有必要信息后,我搜索令牌以在将来的请求中使用它并存储它。

但是由于某种原因发现的令牌在到达时变成了一个空字符串if len(foundCsrfToken) == 0 {。如果我在语句之前打印令牌的长度,它会打印:

我已经摆脱了所有的 goroutines 以防万一。

Go 版本:go1.17.1 windows/amd64

goquery 版本:1.7.1

0 投票
1 回答
44 浏览

go - goquery将值返回到stdout但不将相同的值打印到文件

我需要抓取一个我感兴趣的标签的网站:

目前我正在使用以下代码片段完成工作(goquery):

这段代码的问题是,虽然 element.Text() 被正确打印到标准输出(它打印一个长切片,里面有几个 json,我需要打印到一个文件以供以后工作),但 file.WriteString 语句不打印文件中的任何内容。该文件仍然是空的。

看来我的查询是错误的,它输出了 2 个元素;第一个长度为零,这是打印到文件的内容,第二个是实际内容,打印到标准输出但不打印到文件。

您能否建议对我的代码进行更正,以便将内容正确打印到文件中?我猜我的 goquery 查询中可能有错误。

0 投票
0 回答
76 浏览

list - 如何使用 go-colly 抓取无序列表?

我正在尝试建立一个个人的食物食谱刮刀。我能够获得所有其他元素,但无序列表中的食品成分除外。这是页面html的片段: pagehtml

到目前为止,我的代码没有找到强元素,但会打印“找到的成分”。

我尝试了不同的方法来获取这些元素,但到目前为止还没有运气。我注意到在检查页面 html 时存在数据差异。在“Inspect -> elements”下,html 如图所示,但在“Inspect->Source->pagename”中,html 代表:

那么我的代码中没有收到成分或页面构建方式的原因是什么?我是一个完全的菜鸟,不明白为什么 html 在元素和源代码中看起来不同。寻找任何线索让它工作。谢谢,一切顺利!

0 投票
1 回答
71 浏览

go - Golang在db查询中使用数组值过滤记录

我有数组 int64 值的列表

我想在 db 查询中使用上述数组来过滤掉 ID 不在上述 ID 中的记录。

我尝试了很多方法,但未能创建查询字符串。

0 投票
0 回答
105 浏览

postgresql - Golang 扫描数据库行到字符串和数组的 json

我正在尝试使用带有 3 个表的内部联接(例如表 A 和 B)从 DB 获取输出。

输出结构

数据库查询

上面的代码产生以下输出:

但是我试图将单个字段中的字段“b”与字典列表合并,并且在重复值时只写入一次“a”字段。

尝试更改结构但似乎不起作用。DB 详细信息:表 A(AID、姓名、Des、地点)表 B(BID、答案、分数)

询问:

0 投票
1 回答
27 浏览

go - 如何根据多个属性进行goquery选择

我们如何使用 goquery 抓取下面 div 标签的文本

<div class="class_1" attr="attr_1">text</div>

我尝试了以下选择逻辑,但没有奏效

divtag := doc.Find("div[class='class_1' attr='attr_1']")

我找不到基于上述多个属性的 goquery 选择示例。goquery 提供这样的功能吗?我们应该怎么刮?