cheerio 相关问题

专为服务器设计的核心jQuery的快速,灵活和精益实现。 https://github.com/cheeriojs/cheerio

Puppeteer Web Scraping - 抓取具有多个图像的产品

我正在尝试建立一个包含各种小项目的投资组合 - 目前我正在研究网络抓取。 我正在使用 Puppeteer,并且能够抓取基本的测试网站。然而,我的问题更多

回答 1 投票 0

如何使用 CheerioGS 仅收集从 XPATH 返回的数据的第二个文本值?

站点地图(https://futebolnatv.com.br/jogos-hoje/)如下所示: 站点地图(https://futebolnatv.com.br/jogos-hoje/)如下所示: <div class="col-md-01"> <div class="col-md-12"> <span class="label label-default">0</span> <img src="https://futebolnatv.com.br/static/times/ba92f23d6f11341548d808a0ec309acc.png" width="25" height="25"> "Holstein Kiel" </div> 使用CheerioGS来收集文本值,我使用此路径: let elements_2 = $('tbody > tr > td > div:nth-child(2)') elements_2.each((index, value) => { sheet.getRange(index+1, 3).setValue($(value).text().trim()) }) 但是,它不只是名字Holstein Kiel,而是带有插入到<span>中的这个我不想要的数字: 0 Holstein Kiel 预期回报为: Holstein Kiel 我应该改变什么来解决这个问题? CheerioGS 项目: https://github.com/tani/cheeriogs 您需要更改您的选择器 $(value).text().trim() 到 $(value).contents().last().text().trim() 说明:您需要先获取其所有节点(通过contents()),然后获取所需的文本节点(通过last()),而不是检索整个匹配元素的文本。其余代码不变。 参考: https://cheerio.js.org/docs/api/classes/Cheerio#contents https://cheerio.js.org/docs/api/classes/Cheerio#last 您也可以删除它们,有时这样更快: $('.label').remove()

回答 2 投票 0

错误:属性选择器未终止

我正在尝试在转会市场网站上抓取数据,但它给了我我发布的错误。 我正在使用 Javascript、Cheerio 和 Axios。 const fetchData = async(url) => { 常量结果 = 等待

回答 2 投票 0

Cheerio 将标签值 <h1> 替换为 <h2> 并保留 insideText

我认为这很简单,但它给我带来了一些简单地用另一个标签值替换标签值的问题。我正在获取 HTML 代码,并将 className 添加到每个 H 标签,但我还需要更改 t...

回答 2 投票 0

NodeJS Cheerio 抓取 li 标签总是返回 NULL

我正在尝试将 URL 变量中页面上 li 标记中包含的 URL 归零。它应该很简单,但我无法让它发挥作用。我得到了正确的元素数量,但它们都是......

回答 2 投票 0

CheerioJS,使用相同的类名循环 <ul>

我试图循环每个并获取每个的值。问题是,它只需要第一个 并跳过其余部分。 超文本标记语言 我试图循环遍历每个<ul>并获取每个<li>的值。问题是,它只需要第一个 <ul> 并跳过其余的。 HTML <div id="browse-results"> <ul class="tips cf"> <li>tip11</li> <li>tip12</li> <li>tip13</li> </ul> <ul class="tips cf"> <li>tip21</li> <li>tip22</li> <li>tip23</li> </ul> <ul class="tips cf"> <li>tip31</li> <li>tip32</li> <li>tip33</li> </ul> <ul class="tips cf"> <li>tip41</li> <li>tip42</li> <li>tip43</li> </ul> </div> Cheerio 解析 $('#browse-results').find('.tips.cf').each(function(i, elm) { console.log($(this).text()) // for testing do text() }); $('#browse-results').children().find('.tips').each(function(i, elm) { console.log($(this).text()) }); I've tried many more 输出只是第一个<ul>的值。 tip11 tip12 tip13 请注意,这只是一个片段示例,其结构与我要解析的内容相同。 我花了近2个小时在这上面,我找不到办法。 试试这个: var html = '<div id="browse-results"> \ <ul class="tips cf"> \ <li>tip11</li> \ <li>tip12</li> \ <li>tip13</li> \ </ul> \ <ul class="tips cf"> \ <li>tip21</li> \ <li>tip22</li> \ <li>tip23</li> \ </ul> \ <ul class="tips cf"> \ <li>tip31</li> \ <li>tip32</li> \ <li>tip33</li> \ </ul> \ <ul class="tips cf"> \ <li>tip41</li> \ <li>tip42</li> \ <li>tip43</li> \ </ul> \ </div>'; var $ = cheerio.load(html); $('#browse-results li').each(function(i, elm) { console.log($(this).text()) // for testing do text() }); 这将选择作为 li 后代的所有 #browse-results 元素。 使用正确的选择器并迭代它们。 for(const $element of $("ul.tips.cf li")) { console.log($element.text()); }

回答 2 投票 0

使用cheerio在没有孩子的情况下在父母中获取文本

我正在尝试使用 Cheerio 只提取 div 的内容 - 没有该 div 的任何子项。如果我只使用 div.text() - 我会得到所有文本 - 父级和子级。这是 HTML - ...

回答 4 投票 0

如何使用 NodeJS 和 Cheerio 迭代 div 以从网站中抓取文本?

我试图从网站的 5 个不同的 div 中抓取文本,但问题是我无法使用类名或 ID。我观察到这些 div 的共同点是......

回答 1 投票 0

如何使用Cheerio在Javascript中将多个子表数据拉取为单个表数据

我想从此网页下载整个表格数据。它有五个子表,每个子表都有自己的 thead 和 tbody,位于“table[class="calendar"]”下。我下面的代码可以拉出所有的标题...

回答 1 投票 0

爬取数据时如何获取MathJax中的元素?

我正在抓取一个具有以下“cheerio”标签的网站,如何获取 p 标签的完整文本以及带有属性“data-mathml”的 **span * *。 我正在抓取一个具有以下“cheerio”标签的网站,如何获取 p 标签的完整文本以及 **span * * 属性 “data-mathml”。 <p><strong class="content_question">Đề bài</strong></p> <p style="text-align: justify;">"a. " <span class="MathJax_Preview" style="color: inherit; display: none;"></span> <span id="MathJax-Element-1-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 121%; position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mn>5</mn></math>" role="presentation"><span id="MJXc-Node-1" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-2" class="mjx-mrow"><span id="MJXc-Node-3" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.37em; padding-bottom: 0.37em;">5</span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>5</mn></math></span></span><script type="math/tex" id="MathJax-Element-1">5</script> và <span class="MathJax_Preview" style="color: inherit; display: none;"></span><span id="MathJax-Element-2-Frame" class="mjx-chtml MathJax_CHTML" tabindex="0" style="font-size: 121%; position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mroot><mn>123</mn><mn>3</mn></mroot></math>" role="presentation"><span id="MJXc-Node-4" class="mjx-math" aria-hidden="true"><span id="MJXc-Node-5" class="mjx-mrow"><span id="MJXc-Node-6" class="mjx-mroot"><span class="mjx-root" style="font-size: 50%; vertical-align: 0.774em; width: 0px;"><span id="MJXc-Node-8" class="mjx-mn" style="padding-left: 0.543em;"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.37em; padding-bottom: 0.37em;">3</span></span></span><span class="mjx-box" style="padding-top: 0.045em;"><span class="mjx-surd"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.507em; padding-bottom: 0.553em;">√</span></span><span class="mjx-box" style="padding-top: 0.119em; border-top: 1.6px solid;"><span id="MJXc-Node-7" class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.37em; padding-bottom: 0.37em;">123</span></span></span></span></span></span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mroot><mn>123</mn><mn>3</mn></mroot></math></span></span> <script type="math/tex" id="MathJax-Element-2">\root 3 \of {123} </script> " ;"</p> 在具有属性“data-mathml”的span标签中,我应该在该属性中获取文本还是获取元素以将数据返回给客户端? const html = response.data; const $ = cheerio.load(html); const mathjaxEquations = $("span[data-mathml]"); console.log({ mathjaxEquations }); 请帮助我,非常感谢!

回答 0 投票 0

使用 Cheerio 和 http-proxy-middleware 在 Express 节点中对代理响应进行 DOM 操作

我已经在express Node中设置了代理服务器,运行良好。 const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); 常量应用程序 = Express(); // D...

回答 1 投票 0

以编程方式检测客户端呈现的站点

我正在构建一个网络抓取器,目前我正在使用 puppeteer 来提取内容。但 puppeteer 的问题是它需要大量内存,有时当我......时我的服务器会耗尽内存。

回答 1 投票 0

将 axios 响应类型设置为 UTF-8,以便在 Node.js 中进行网页抓取

我正在抓取谷歌搜索给定的查询,但问题是我抓取的标题是在 ISO-8859-1 中给出的,我需要它们以 UTF-8 格式表示西班牙语。我获得了 10 个第一名,但有些......

回答 1 投票 0

使用axios和cheerio(Node js)抓取谷歌搜索

我想抓取给定查询的谷歌搜索,但我无法让 css_identifiers 处理此代码: const axios = require("axios"); const Cheerio = require("cheerio&q...

回答 1 投票 0

如何在Cheerio中获取没有元素/类的br标签之间嵌套的文本? [重复]

我希望在我的nodejs/cheerio 抓取脚本中提取韦恩县EDA。 到目前为止,我可以收到电子邮件 (a) 和姓名 (strong),但无法追踪如何获取韦恩县......

回答 1 投票 0

Cheerio、axios、reactjs 从网页上抓取表格并返回空列表

尝试从本网站上删除此表格:https://www.investing.com/commodities/real-time-futures 但由于某种原因,当我尝试获取数据时,我总是得到一个空列表。 这就是我...

回答 2 投票 0

使用Cheerio从页面中提取数据..格式如下。由于这些表可能有所不同,我如何动态解析它们?

我希望聪明的人可以帮助我了解所有这些数组、对象和循环......我已经经常遇到它们,但我只是不明白为什么没有一种简单的方法让我选择那个...

回答 1 投票 0

cheeriojs 选择不在另一个指定标签内的标签

考虑以下代码 const Cheerio = require('cheerio'); const xml = `<...

回答 1 投票 0

无法使用 Cheerio 获取图像 src url

目前我正在尝试获取 src= 的值 目前我正试图在src=的中获得价值 <div class="page-break no-gaps"> <img id="image-0" src="https://foo.bar/image.jpg" class="wp-image" alt="Title"> </div> 使用以下代码: getImageSrc(imageObj: Cheerio | undefined): string { let image image = imageObj?.attr('src') console.log(image) } 选择器代码: chapterDetailsSelector = 'div.page-break > img' 但是我得到的都是未定义的 编辑 - 添加更多上下文 查看源 HTML 与 Cheerio 获取的内容不一样。 使用 Cheerio 获取时,图像 URL 似乎位于 attr('data-cfsrc') 而不是 attr('data')。

回答 1 投票 0

使用cheerio进行DOM遍历 - 如何获取所有元素及其对应的文本

所以我使用 Cheerio,这是一个类似于 Node 服务器端 jQuery 的库,它允许您解析 html 文本并遍历它,就像使用 jQuery 一样。我需要获取......的纯文本

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.