[英]How to get value with cheerio on node.js
如何在node.js上使用 cheerio 获取源代码的 IMVALUE?
元素/查看来源:
<div class="e7m mess_bodiyy">
<p style="max-width: 600px">
Hello x7907062441,
<br />
<br />
This is the value:
<br />
<a href="http://mywebsite.com" target="_blank" rel="nofollow">
IMVALUE
</a>
.<br />
<br />
</p>
</div>
我试过
const src = $('<div class="e7m mess_bodiyy"></div>').
但结果是不确定的。
术语技术性:那是text ,而不是value 。
这是一个值(它是一个特定的属性):
<input value="some value">
(您可以使用$("input").val()
或 select 获得它$('[value="some value"]')
)
这是文字:
<p>some text</p>
(你用$("p").text()
得到它)
您不需要 select 并通过传入 HTML 来遍历 CSS。如果您想像这样进行 substring 检查,则可以在没有 Cheerio 的情况下对纯字符串进行检查。 但这没有用,因为在 HTML 中,我们想要忽略空格和属性的顺序。 对于字符串,很难确定哪些元素是其他元素的祖先。 Cheerio将字符串解析成CSS个选择器遍历的树,解决了这些问题。
让我们在字符串上使用带有 CSS 选择器的 Cheerio:
const cheerio = require("cheerio"); // 1.0.0-rc.12
const html = `<Your HTML>`;
const $ = cheerio.load(html);
console.log($(".e7m.mess_bodiyy a").text().trim()); // => IMVALUE
这个选择器说“找到<a>
元素,它是具有类e7m
和mess_bodiyy
的元素的某个后代,以任何顺序排列”。
现在,根据讨论,如果这没有记录任何内容,也许您正在从浏览器开发人员工具中获取 HTML,其中包括页面加载后由 JavaScript 注入的元素。如果您正在执行一个简单的 HTTP 请求来检索static HTML,您可能看不到在开发工具中可见的相同元素。 如果是这种情况,您将需要不同于 Cheerio 的工具,例如 Puppeteer。 请参阅如何使用 node.js 抓取包含动态内容的页面? 了解详情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.