如何使用javascript获取淘宝页面的sku价格?

作者站长头像
站长
· 阅读数 8

这个问题感觉特别困难,已经思考很久,网络上没有任何资料,特来请教!

在不使用爬虫和接口的情况,如何单单通过javascript在console控制台输出sku的价格。

淘宝一个商品的每个sku,对应的价格都不一样。但是在pc端的淘宝,先要点击这个sku,这个网页的dom才会更改显示价格。

如何通过javascript一次性在控制台输出所有sku对应的价格。

比如随便举个例子,这个淘宝链接https://detail.tmall.com/item.htm?abbucket=9&id=704520403635,书包有59、69、99,但是需要点击sku才能显示价格。

回复
1个回答
avatar
test
2024-06-28
//依次点击所有sku
async function simulateClickAndGetText() {
  const skuItems = document.querySelectorAll('.skuItem'); // 根据实际情况选择类名

  for (const skuItem of skuItems) {
    skuItem.click(); // 模拟点击模块

    await new Promise(resolve => setTimeout(resolve, 100)); // 等待2秒

    const textContent = skuItem.textContent; // 获取模块文本内容
    console.log(document.querySelector('.ShopHeader--title--2qsBE1A').textContent + "&" + document.querySelector('.ItemHeader--mainTitle--3CIjqW5').textContent + "&" + textContent + "&" + document.evaluate('//*[@id="root"]/div/div[2]/div[2]/div[1]/div/div[2]/div[2]/div/div/div/div/div[1]/span[3]', document, null, XPathResult.STRING_TYPE, null).stringValue + "&" + document.querySelector('.ItemHeader--salesDesc--srlk2Hv').textContent);
  }
}

simulateClickAndGetText();

题主,你的需求我看了,很简单,因为我是电商小厂的产品,所以我一看就明白了你的需求,你应该是个非技术岗,可能是运营,想要轻松整理一些资料吧。我用模拟点击的方式帮你写了一个。希望采纳~如果你的浏览器装了一些电商插件,可能会让dom结构或者其他地方变了,我也不太清楚,至少我写代码的水平也不高,如果跑不起来,建议卸载一下那些电商插件,或者换个干净的浏览器。我的浏览器是什么都没装的。跑出来后是下面这样的:answer image我还帮你组了一些产品标题,到时候你用excel分列就行!

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容