javascript 噩梦不要刮亚马逊价格信息

bf1o4zei  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(101)

我正在构建一个亚马逊价格跟踪器,并使用node.js和模块nightmare进行网页抓取。
这是我想从亚马逊页面抓取信息:https://www.amazon.in//dp/B0BDKD8DVD/
我的代码只是返回一个NULL值,而不是返回产品的价格。
这是我的app.js代码

const express = require("express")
const parser = require("./parser")

const app = express();

app.listen(3000, () => {
    console.log("listening on port 3000")
})

app.get("/", (req, res) => {
   const ans = parser();
    res.send(ans)
})

这是我的parser.js代码

const nightmare = require("nightmare")();

async function checkprice() {

    const priceString = await nightmare
        .goto("https://www.amazon.in/Apple-AirPods-Pro-2nd-Generation/dp/B0BDKD8DVD/ref=sr_1_5")
        .wait(".a-offscreen")
        .evaluate(() => document.getElementsByClassName("a-price-whole").innerText)
        .end
    const priceNumber = parseFloat(priceString)
    console.log(priceNumber)
    return priceNumber

};

module.exports = checkprice;

这是返回NaN而不是price。任何建议都可能很有帮助。谢谢你。

au9on6nz

au9on6nz1#

你的元素返回Undefined
document.getElementsByClassName("a-price-whole").innerText
正确的应该是
document.getElementsByClassName("a-price-whole")[0].innerText
请注意,他们的6个div与这个类名和返回新行'26,600\n.'

相关问题