node爬取异步数据页面图片
时间: 2023-10-03 16:07:54 浏览: 46
要爬取异步数据页面图片,可以使用node.js中的puppeteer库来模拟浏览器行为,并从页面中提取出异步加载的图片链接。
以下是一个基本的示例代码:
```javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com'); // 进入目标网站页面
// 等待页面中所有图片加载完成
await page.waitForSelector('img');
// 获取页面中的所有图片src属性
const imageSrcList = await page.$$eval('img', imgs => imgs.map(img => img.src));
// 遍历图片列表,下载图片
for (let i = 0; i < imageSrcList.length; i++) {
const imageUrl = imageSrcList[i];
const imagePage = await browser.newPage();
await imagePage.goto(imageUrl);
await imagePage.screenshot({ path: `img-${i}.png` }); // 保存图片
await imagePage.close();
}
await browser.close();
})();
```
这段代码首先使用puppeteer库启动一个无头浏览器,然后跳转到目标网站页面。在页面加载完成后,等待页面中所有图片加载完成,并通过`$$eval`方法获取页面中的所有图片链接。随后,遍历图片链接列表,使用新页面打开每个图片链接,并使用`screenshot`方法将图片保存到本地。最后,关闭所有页面和浏览器。
需要注意的是,这种方式可能会被目标网站视为恶意爬虫行为,因此使用时要注意合法性和风险。