Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用node js和Puppeter刮取图像src URL_Javascript_Html_Node.js_Web Scraping_Puppeteer - Fatal编程技术网

Javascript 如何使用node js和Puppeter刮取图像src URL

Javascript 如何使用node js和Puppeter刮取图像src URL,javascript,html,node.js,web-scraping,puppeteer,Javascript,Html,Node.js,Web Scraping,Puppeteer,我想从wikipedia页面上抓取一个图像,但问题是我一次获取同一图像的3个url,这三个url位于同一个名为img的标记中。我只需要src url。谁都知道怎么做 const puppeteer = require('puppeteer'); const sleep = require('sleep'); (async ()=> { const browser = await puppeteer.launch({ "headless": f

我想从wikipedia页面上抓取一个图像,但问题是我一次获取同一图像的3个url,这三个url位于同一个名为img的标记中。我只需要src url。谁都知道怎么做

const puppeteer = require('puppeteer');
const sleep = require('sleep');

(async ()=> {

    const browser = await puppeteer.launch({
        "headless": false
    });

    const page =await browser.newPage();

    await page.goto("https://www.wikipedia.org/");

    const xpathselector = `//span[contains(text(), "Commons")]`;

    const commonlinks = await page.waitForXPath(xpathselector);

    await page.waitFor(3000);

    await commonlinks.click();

    await page.waitFor(2000)

    //await page.waitForSelector()

    const images = await page.$eval(('a[class="image"] > img[src]'),node => node.innerHTML);

    console.log(images);

} ) ();

//*[@id="mainpage-potd"]/div[1]/a/img


我打赌您看到三个URL,因为您正在查看srcset,它有许多用于不同屏幕的URL。决议。您可以返回src属性:

const images=wait page.$eval'a[class=image]>img[src]',node=>node.src;
我打赌您看到三个URL,因为您正在查看srcset,它有许多用于不同屏幕的URL。决议。您可以返回src属性:

const images=wait page.$eval'a[class=image]>img[src]',node=>node.src; 仅供参考,这是擦伤,不是擦伤仅供参考,这是擦伤,不是擦伤