问题标签 [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.
node.js - 如何在 Node.js 中高效地进行网页抓取?
我正在尝试从购物网站 Express.com 上抓取一些数据。这是包含image、price、title、color(s)的许多产品中的 1 个。
我所做的非常幼稚且可能容易出错的方法是首先获取所有价格、图像、标题和颜色:
接下来,我用从 DOM 中提取的数据填充数组,这些数据是使用jsdom或Cheerio为 node.js 抓取库提取的。(在这种情况下是 Cheerio)。
最后,基于价格、标题、图像和颜色将匹配的假设创建一个产品对象:
这种方法速度慢,容易出错,而且非常抗 DRY。$('.cat-thu-product')
我在想,如果我们能够一次抓取并使用单个 for 循环从单个产品中提取相关信息,那就太好了。
但是你有没有试过在jsdom或Cheerio中遍历 DOM ?我不知道任何人甚至可以理解它。$('.cat-thu-product')
有人可以通过抓取包含所有相关信息的 div 元素然后提取必要的数据来展示我将如何使用这种建议的抓取方法吗?
或者也许有更好的方法来做到这一点?
node.js - 使用 Meteor.js 进行抓取
我可以用meteor.js 刮吗?刚刚发现cheerio
与request
. 我可以将这些与流星一起使用,还是有类似的东西?
你有一个工作的例子吗?
html - 使用 Cheerio 排除双类的 css 选择器
我有一个相当“奇怪”的场景(网络抓取)。我只想选择那些class=g
有( double class ) 的人。如何在 jQuery 中做到这一点?class="g g"
g
如果我使用 $('.g'),它将同时选择.g
和.g .g
更新 1:
如果您认为.g .g
无效,请在 Google 搜索结果中查看源代码;)
javascript - 用 Cheerio 执行抓取的 JavaScript
我有一个网页,其中有一些 JS API 不会改变 dom,但会返回一些数字。我想编写一个 NodeJS 应用程序来下载此类页面并在下载页面的上下文中执行这些功能。
我正在寻找 Cheerio 进行页面抓取.. 但是虽然我看到使用它导航和操作 DOM 是多么容易,但我看不到任何运行页面功能的访问权限。有可能做到吗?
我应该看看 jsdom 吗?
谢谢
javascript - .is() 在 Cheerio 中不存在吗?
我需要检查一个元素是否是这样的最后一个孩子
但是我在node.js上使用cheerio而不是jquery(为了更轻的重量)
https://github.com/MatthewMueller/cheerio
它给了我错误:
有人可以确认吗?如果是这样,检查节点是否是最后一个孩子的优雅方法是什么?
谢谢。
jquery - 在 NodeJS 上使用 jQuery 的函数 css()
我目前正在使用 NodeJS 来废弃具有以下模块的网页: Cheerio 和 Request
是否可以在 NodeJS 中使用 css() jQuery 函数?
我想检索给定 jQuery 对象的 css 属性。
谢谢你的帮助!
javascript - nodejs使用cheerio解析xml返回空CDATA
我在nodejs 中使用cheerio 来解析一些RSS 提要。我正在抓取所有将它们放入数组中的项目。我正在使用 3 个测试提要,每个“项目”元素都有一个“描述”子元素。在其中一个提要中,整个“描述”被包装为 CDATA,我无法获得它的价值。这是一个简短的代码片段
正如预期的那样,两个没有 CDATA 的 rss 提要给了我一个像这样的数组
带有 CDATA 描述的提要看起来像这样
所以我的问题是:为什么cheerio 不返回包含在 CDATA 中的值/我怎样才能让它返回这些值。
jquery - Python 相当于 Javascript 的 jQuery 还是 Node 的cheerio?
我正在寻找一个与 jQuery 或 Cheerio 具有相似 API 和用法的库。
我的用例是:为包含 javascript/css 文件引用的任何脚本或链接标签解析 HTML 文件。
node.js - 使用 xpath 和cheerio 获取元素
尝试在 node.js 中编写一个函数,该函数将通过 xpath 获取元素。
我有一个所需 dom 元素的 xpath,例如
我的 DOM 通过 fs 模块加载到Cheerio中(因为我有这个网页存储在本地):
然后我尝试遍历每个 xpath 部分,获取 dom 树的元素,检查名称和元素编号是否匹配的子元素,如果匹配,则将rez存储为此数学元素。然后我继续挖掘新的 xpath 部分。代码看起来像这样,但它无法得到我想要的,因为在我获得第一个 mach 并将rez设置为匹配元素之后,在下一个 for 循环循环中,这个新元素似乎没有任何子元素。
任何人都可以使用提到的 node.js 模块帮助我编写代码吗?
node.js - Node.js - 在 Cheerio 中使用回调函数
我正在 Node 中构建一个爬虫,它使用request和cheerio来加载页面并解析它们。
重要的是我只在请求和 Cheerio 完成页面加载之后才进行回调。我正在尝试使用async
扩展,但我不完全确定在哪里放置回调。
我一直在阅读cheerio documentation
并且找不到任何关于何时加载内容的回调示例。
最好的方法是什么?当我在脚本中抛出 50 个 URL 时,它在cheerio 正确加载内容之前就开始过早地移动,我试图通过异步加载来遏制任何错误。
一般来说,我对异步编程和回调完全陌生,所以如果我在这里遗漏了一些简单的东西,请告诉我。