【问题标题】:Puppeteer Unable to scrape data in headless mode but able to scrape in non-headless mode . How to fix?Puppeteer 无法在无头模式下抓取数据,但能够在非无头模式下抓取。怎么修?
【发布时间】:2021-05-05 10:55:08
【问题描述】:

当我在headless: false 模式下运行我的节点 API 时,它可以打开一个浏览器实例,我可以获取数据。但是当我使用headless: true 时,它会显示访问被拒绝并且不会抓取数据。我的代码如下。

(async () => {
const browser = await puppeteer.launch({
  headless: false
});
const page = await browser.pages();
await page[0].goto(url);

const my = await page[0].evaluate(() => {

  let title = document.getElementsByClassName('p-name')[0].innerHTML.trim();
  return title;
});
console.log(my);
res.status(200).json(my);
await browser.close();})(); 

我搜索解决方案并找到了这个 (Puppeteer opens an empty tab in non-headless mode)。这无法完全解决我的问题。这帮助我关闭了打开的其他浏览器。提前致谢。

我要抓取的这个网址是:https://www.macys.com/shop/product/nike-big-boys-sportswear-t-shirt?ID=11252136&CategoryID=6086&swatchColor=Dark%20Gray%20Heather

【问题讨论】:

标签: node.js web-scraping puppeteer


【解决方案1】:

我认为你必须设置用户代理。

await page[0].setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36")

下面的代码对我有用。

const puppeteer = require("puppeteer")
async function test () {
const browser = await puppeteer.launch({
  headless: true
});
const page = await browser.pages();
await page[0].setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36")
await page[0].goto("https://www.macys.com/shop/product/nike-big-boys-sportswear-t-shirt?ID=11252136&CategoryID=6086&swatchColor=Dark%20Gray%20Heather");
await page[0].screenshot({path: 'screenshot.png'});
const my = await page[0].evaluate(() => {
  
  let title = document.getElementsByClassName('p-name')[0].innerHTML.trim();
  return title;
});
console.log(my);

await browser.close();
}; 

test();

【讨论】:

  • 感谢它的工作。这里有一个问题,为什么需要添加用户代理?
  • 此链接可能会帮助您进一步了解 puppeteer 无头模式dev.to/sonyarianto/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
  • 2023-03-31
相关资源
最近更新 更多