Получить файл src изображения с определенным классом в puppeteer

#javascript #node.js #web-scraping #puppeteer

#javascript #node.js #очистка веб-страниц #puppeteer

Вопрос:

У меня есть следующий код, где я сохраняю все src в массиве, я хотел бы сохранить только img с именем класса xyz

 const imgs = await page.$$eval('img[src]', imgs => imgs.map(img => img.getAttribute('src')));
  

Я попытался выполнить пользовательский фильтр, но не смог найти правильный синтаксис для этого.

Ответ №1:

Просто добавьте .xyz в строку вашего запроса:

 const imgs = await page.$$eval('img.xyz[src]', imgs => imgs.map(img => img.getAttribute('src')));
  

Ответ №2:

Если вы хотите получить все адреса SRC внутри класса, последние-фотографии:

 <div class="latest-photos">

    <img src="/LogoImage.ashx?sn=14376amp;imgNbr=0" id="ctl00_ctl00_ctl00_cphMain_cphMiddle_cphCenterColumn_uctDiveInfoDisplay_img1" alt="OptionalI Image 1" width="170" style="vertical-align: top;" />
    <img src="/LogoImage.ashx?sn=14376amp;imgNbr=1" id="ctl00_ctl00_ctl00_cphMain_cphMiddle_cphCenterColumn_uctDiveInfoDisplay_img2" alt="OptionalI Image 2" width="170" style="vertical-align: top;" />
    <img src="/LogoImage.ashx?sn=14376amp;imgNbr=2" id="ctl00_ctl00_ctl00_cphMain_cphMiddle_cphCenterColumn_uctDiveInfoDisplay_img3" alt="Option
    
    alI Image 3" width="170" style="vertical-align: top;" />
</div>
  

Вы используете:

 const imgs = await page.$$eval('.latest-photos img[src]', imgs => imgs.map(img => img.getAttribute('src')));
  

Ответ №3:

Вы можете использовать это:

     const imgaes = await page.$$eval('img', anchors => [].map.call(anchors, img => img.src));

  

Ответ №4:

Вы можете использовать это:

 async function scrapeProduct(url){
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url);

const [el] = await page.$x('//*[@id="content"]/div/div[2]/div/div[2]/div[1]/div/div/div/span');
const src = await el.getProperty('src');
const image = await src.jsonValue();

console.log({image});

browser.close();

}

    scrapeProduct('https://soundcloud.com/sudo_normi_music/shibuya-drift');