【发布时间】:2021-11-03 14:02:23
【问题描述】:
我试图在动态 html 中提取 span 标签的内容,但是当我使用 querySelectorAll 时,它只返回 NodeList 中第一个元素的 _prevClass,没有别的。
我的代码:
const Nightmare = require('nightmare');
const nightmare = Nightmare({ show: true });
const url = 'https://mir4draco.com/price';
nightmare
.goto(url)
.evaluate(() => document.querySelectorAll('span.amount')) // Should return a NodeList with 5 elements
.end()
.then(response => {
console.log(response);
}).catch(error => {
console.error('Search failed:', error);
});
输出:
{ '0': { _prevClass: 'amount' } }
【问题讨论】:
-
运行时你登录了吗?我刚刚访问了该页面,并且您的查询下只有一个元素没有登录,这是有道理的。
-
不,我在私人标签上运行它,未登录或启用扩展
-
那就是你的问题了。如果我访问页面 (imgur.com/a/BnRAOhg),则只有一个元素与查询
span.amount匹配。您可能需要登录才能查看所需的所有数据。 -
我现在在私人标签中查询
span.amount,它给了我相同的结果(imgur.com/SjBevwC),登录只显示一些个人详细信息,我想要的数据可用于大家,登录与否 -
当你没有得到你想要的结果时,看看你是否可以检查控制台。我从页面收到 CORS 错误,可能是您的噩梦实例也是如此。
标签: node.js web-scraping dom