猿问

如何使用 Puppeteer 解决和定位元素

屏幕抓取问题

我正在尝试学习如何使用 querySelector 定位元素。


在这个使用 Puppeteer 的小型 NodeJS 屏幕抓取应用程序中,我想添加 Marketplace 上列出的项目的“位置”。


在我尝试添加这个新节点之前,脚本运行良好,它将输出以下内容:


[

  {

    itemTitle: 'Iphone 7 Unlocked 32GB Gold',

    itemPrice: '$195',

    itemURL: 'https://facebook.com//marketplace/item/1094335687596621/',

    itemImg: 'https://scontent-mia3-1.xx.fbcdn.net/v/t1.0-0/c0.29.261.261a/p261x260/94707992_155656332613238_7356296336775315456_o.jpg?_nc_cat=108&_nc_sid=843cd7&_nc_oc=AQk4lXrzsGBkPFIWqx-sRgcDWuNd2kZlc1XJavKl0ZLJBcZZfaLFFUpZbSTTStFuT9U&_nc_ht=scontent-mia3-1.xx&oh=bc6f948b7c5930f1f81f85cbdf889ad5&oe=5ECEB781'

  },

  {

    itemTitle: 'iPhone X 64gb Unlocked Everything Works',

    itemPrice: '$180',

    itemURL: 'https://facebook.com//marketplace/item/2576925735968131/',

    itemImg: 'https://scontent-mia3-2.xx.fbcdn.net/v/t1.0-0/c0.83.750.750a/s261x260/84641729_222957132082738_3587337422137982976_o.jpg?_nc_cat=105&_nc_sid=843cd7&_nc_oc=AQmueUdOvX-NNTmxZOZp5gvyt-Szz9emk0it5HseboNA38BvQvKV0FT7mDwtqJo6z1g&_nc_ht=scontent-mia3-2.xx&oh=fbf3ffe04007566227eb76c608dd7fae&oe=5ECF5178'

  }

]


上述结果的选择器

以下是用于获取这些结果的内容:


const itemTitle = item.querySelector('div > div > span > div > a > div > div > div > span > div > span > div[class="l9j0dhe7 stjgntxs ni8dbmo4"').innerText;

const itemPrice = item.querySelector('div > div > span > div > a > div > div > div > div > span[class="oi732d6d ik7dh3pa d2edcug0 qv66sw1b c1et5uql a8c37x1j s89635nw ew0dbk1b a5q79mjw g1cxx5fr lrazzd5p oo9gr5id"').innerText;

const itemURL = `https://facebook.com/${item.getAttribute('href')}`;

const itemImg = item.querySelector('div > div > span > div > a > div > div > div > div > div > div > img').getAttribute('src');             

所以现在我想添加项目的位置:

达令说
浏览 247回答 1
1回答

守着星空守着你

我认为这就是你要找的:有没有办法在 Selenium WebDriver 中使用 JavaScript 通过 XPath 获取元素?https://developer.mozilla.org/en-US/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript基本上,如果你从chrome DevTools获取XPATH,你不能只使用querySelector,你需要使用该document.evaluate函数。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答