如何使用querySelector获取Axie Infinity市场页面的价格字段值?
Puppeteer获取Axie Infinity市场价格问题解决办法
核心问题:你用的
.value属性仅适用于input这类表单控件,而价格展示元素是普通div/span,内容存储在文本节点里,并非value属性;另外页面是动态渲染的,可能元素还未加载完成就执行了查询操作。修正方案:
- 先等待目标元素加载完成,规避动态渲染导致的元素未找到问题
- 用
textContent或innerText获取元素的文本内容,替代.value
修正后的代码示例:
// 获取法币价格(对应你最初用的.FiatPrice_FiatPrice__5w_aV选择器) await page.waitForSelector('.FiatPrice_FiatPrice__5w_aV'); const resultadoFiat = await page.evaluate(() => { return document.querySelector('.FiatPrice_FiatPrice__5w_aV').textContent.trim(); }); // 获取ETH价格(对应你代码里的选择器) await page.waitForSelector('.Price_Container__UAUoC.AxieCard_Price__sGl3J'); const resultadoEth = await page.evaluate(() => { return document.querySelector('.Price_Container__UAUoC.AxieCard_Price__sGl3J').textContent.trim(); });
额外注意事项:
- 先在浏览器控制台测试选择器:打开目标页面按F12进入控制台,输入
document.querySelector('你的选择器'),确认能选中目标元素,再查看它的textContent是否为你需要的价格 - 如果页面有懒加载机制,需要滚动页面让目标Axie卡片加载出来,否则元素不会出现在DOM中
内容的提问来源于stack exchange,提问作者mybad
相关产品推荐
相关产品推荐

