问题标签 [cheerio]

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 回答
572 浏览

javascript - 在网页的 cmd 行中显示数据

所以我正在使用 Cheerio 执行一些简单的网络抓取。它工作得很好,输出出现在我的 cmd 行中。我可以从命令行获取数据并以某种方式将其放入一些 JavaScript 中吗?我基本上想在另一个网页上重新创建这些抓取的数据。

任何建议将不胜感激。

0 投票
2 回答
1293 浏览

jquery - Cheerio js html

我正在尝试用cheerio解析html字符串我遇到的问题是获取表列的索引

由于 Cheerio 选择器看起来像 jQuery,我尝试了:

但它适用于 jQuery,但不适用于cheerio

你们有什么想法吗?

编辑:正如您所问的,这里是一个 html 示例,它是一个简单的表格,但可以更改列数

0 投票
1 回答
1754 浏览

javascript - 如何使用cheerio从网页中的换行符中抓取内容

大家好。

我有 2 个关于使用 Cheerio 进行网络抓取的问题。我浏览了可能有我答案的问题,但找不到能回答我问题的问题,所以我决定问一个问题。

背景信息:我只学习 Javascript 大约 2~3 个月,所以我可能会问一些非常有趣的问题,请原谅我。

目标:我希望从以下站点抓取数据 - 并且

我正在寻找

  • 自行车店名称
  • 自行车店地址
  • 自行车店电话

我已经设法抓取了我需要的数据,但是它们集中在一个 html 组中(不确定这是否是如何调用它的。这是我使用的代码。

结果循环运行,我能够得到以下结果。我无法发布图片 - 我已将图片放在以下链接中。

问题:如何分别获取数据?

我需要链接的标题,我试过 `var link = $(this).attr('href');' 但不起作用。

我还需要换行后的信息(自行车商店地址)——我不知道如何获取它。

问题 2: 我尝试了以下var doc = $("td[width='52%'] .verdana1");- 注意 .verdana1 之前的空格 - 这只给了我想要的自行车商店的标题,这与var doc = $("td[width='52%'].verdana1");

如果我正在使用它var doc = $("td[width='52%'] .verdana1");- 我怎样才能获得自行车店地址的数据?

非常感谢您的阅读,我在农历新年期间一直在努力解决这个问题,这让我发疯:(。我期待向你们学习。

布莱恩

0 投票
1 回答
2000 浏览

javascript - Node.js:使用 Request 和 Cheerio 问题进行抓取

首先:我是 node 新手,也是一个相对的编程初学者。

我正在尝试使用 Express 创建一个小型 Web 应用程序,其唯一目标是从没有开放 API 的网站获取和重新格式化数据。

为此,我决定学习抓取,这将我带到了 Cheerio 和 Request。

我以 reddit 为例,继续学习。本示例的最终目标是收集首页上帖子的名称和 href 以及指向评论的 url,然后在该页面上抓取评论数量。

以下是对 / 的 GET 请求调用的路由(请原谅变量名和comments/console.logs,我很沮丧):

函数 first(); 按预期工作。它将标题、href 和 url 放入数组中的评论中,然后将该数组推送到包含首页上所有帖子的这些数据点的主数组中。然后它调用函数 second();

所述函数的目标是遍历主数组 (mainArr[]),然后选择所有导致评论的 url (mainArr[i][uI]) 并以该 url 作为第一个参数启动 request()。

循环有效,但在 second() 函数内第二次调用 request() 期间,一切都崩溃了。变量 i 永久设置为 -1,commentURL(设置为当前帖子评论 URL 的变量)永久定义为 arrMain[] 中的第一个 url。arrMain.length 也有一些奇怪的行为。根据我放置它的位置,它告诉我 arrMain 未定义。

我有一种感觉,我错过了一些明显的东西(可能与异步性有关),但对于我的生活,我找不到它。

我会非常感谢任何建议!

0 投票
1 回答
1878 浏览

javascript - Cheerio.js 没有抓取非内联样式?

我目前正在使用 node.js 来抓取保存为 .htm 的 word 文档,然后将其重写为 shell。

我已经创建了 < li > 标签,但是这些 word 文档的保存方式我必须通过寻找 margin-left 来寻找它们。像这样:

到目前为止,我的工作非常好。我面临的唯一问题是样式实际上是通过类应用的。

这是冲突的类:

当它显然有一个值时,它将返回一个未定义的值。

对此的任何见解都会有所帮助,我在这里发疯了。

0 投票
1 回答
934 浏览

node.js - 返回使用 nodejs 抓取网页的 URL

我正在尝试构建一个简单的网络应用程序,使用 nodejs 及其 2 个模块请求和 Cheerio 抓取网站。

我设法使用以下代码来做到这一点:

在网站上打印图片的 URL 效果很好,但我在这里真正想做的是创建一个我可以在函数之外使用的 url 列表。我尝试过这种方式,但它返回一个空列表:

我怎样才能解决这个问题?非常感谢

0 投票
1 回答
488 浏览

jquery - 通过 jQuery 更新路径后 SVG 图像变黑

我有以下html代码

我正在尝试使用 jQuery 更改图像的路径并且图像变黑。

我正在使用 node.js 和模块cheerio。

谢谢

0 投票
2 回答
3785 浏览

javascript - 我如何通过cheerio解析我的电话号码

我的 html 喜欢:

我的解析器代码:

找到的会得到“ <dd class="pro_lf"> </dd>

然后 found.text() 将得到“ sex:male | age:26 phone:123456789send message E-mail:name@abc.com

但是我怎样才能得到每个电话和电子邮件?

我想写一个常用的代码

所以我只是用来 $('*:contains("phone:")')搜索我的信息,而不是使用标签名或类名

我将循环元素以找出每个最后一个节点并将内容获取到解析器

我需要一些帮助。

0 投票
1 回答
316 浏览

javascript - 快递服务器不返回页面 | 节点+快递

我正在尝试使用 Node/Express 和 Cheerio 构建一个基本的 parcer,但是当服务器运行正常时,我在浏览器中没有收到任何页面。这是 server.js 的代码:

先感谢您。

0 投票
1 回答
26383 浏览

html - 如何使用 node.js 在cheerio 中获取元素名称

如何在cheerio中获得元素的名称?

jQuery 等价物将是.attr('name'),但会undefined在cheerio 中返回。