使用 Puppeteer 抓取时,NodeList 中的数组不会出现
An array from a NodeList while scraping with Puppeteer doesn't appear
我正在尝试对网站进行 scape,但找不到在 console.log 中显示结果的方法。
我创建的脚本如下:
const puppeteer = require("puppeteer");
(async () => {
try {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto(`https://www.coches.net/nuevo/km-0/`);
await page.waitFor(4000);
const news = await page.evaluate(() => {
const urlsArray = Array.from(document.querySelectorAll('.mt-CardAd-link')).map(a => a.href);
return urlsArray;
});
console.log(news);
await browser.close();
console.log("Browser Closed");
} catch (err) {
console.log(err);
await browser.close();
console.log("Browser Closed");
}
})();
虽然变量 urlsArray 在 Chrome 的 devconsole 中有效,但在终端中使用先前的脚本启动脚本时却无效。我尝试了一切,但我没有找到任何解决这个问题的方法。
我该怎么做才能最终用 console.log?
显示这个数组
谢谢!
您的脚本似乎没问题,但您尝试进入的页面正在检查 cookie 并阻止您的脚本访问。
我相信你应该看看这个:
How to avoid being detected as bot on Puppeteer and Phantomjs?
我正在尝试对网站进行 scape,但找不到在 console.log 中显示结果的方法。 我创建的脚本如下:
const puppeteer = require("puppeteer");
(async () => {
try {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto(`https://www.coches.net/nuevo/km-0/`);
await page.waitFor(4000);
const news = await page.evaluate(() => {
const urlsArray = Array.from(document.querySelectorAll('.mt-CardAd-link')).map(a => a.href);
return urlsArray;
});
console.log(news);
await browser.close();
console.log("Browser Closed");
} catch (err) {
console.log(err);
await browser.close();
console.log("Browser Closed");
}
})();
虽然变量 urlsArray 在 Chrome 的 devconsole 中有效,但在终端中使用先前的脚本启动脚本时却无效。我尝试了一切,但我没有找到任何解决这个问题的方法。 我该怎么做才能最终用 console.log?
显示这个数组谢谢!
您的脚本似乎没问题,但您尝试进入的页面正在检查 cookie 并阻止您的脚本访问。
我相信你应该看看这个: How to avoid being detected as bot on Puppeteer and Phantomjs?