我正在尝试进行一些网页抓取,读取 html 页面内的一些行。我需要寻找在某些页面中重复出现的文本<span>
元素。在下面的示例中,我想以 ['文本编号 1','文本编号 2','文本编号 3'] 的字符串数组结尾
<html>
...
<span>Text number 1</span>
...
<span>Text number 2</span>
...
<span>Text number 3</span>
...
</html>
我有以下代码
sElements = ' ... span'; // I declare the selector.
cs = await page.$$(sElements); // I get an array of ElementHandle
选择器的工作方式与 Google Chrome 开发者工具中的一样,它准确地捕获了我正在寻找的 3 个元素。 cs 变量也填充了三个元素的数组。但后来我正在尝试
for(c in cs)
console.log(c.innerText);
但未定义被记录。我尝试过 .text .value .innerText .innerHTML .textContent ...我不知道我错过了什么,因为我认为这非常简单
我也尝试过同样的未定义结果。
cs = await page.$$eval(sElements, e => e.innerHTML);
这是一个获取最后一个跨度元素的内部文本的示例。
let spanElement;
spanElement = await this.page.$$('span');
spanElement = spanElement.pop();
spanElement = await spanElement.getProperty('innerText');
spanElement = await spanElement.jsonValue();
如果您仍然无法获取任何文本,请确保选择器正确并且 span 元素定义了 insideText(而不是outerText)。您可以在 Chrome 控制台中运行 $(selector) 来检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)