Отправить POST-запрос в puppeteer

#javascript #node.js #puppeteer

#javascript #node.js #puppeteer

Вопрос:

Я работаю с JS Puppeteer и пытаюсь создать скрипт, который может добавлять товары в корзину. Веб-сайт часто вылетает из-за высокого трафика, поэтому вместо того, чтобы полагаться на нажатие, я хочу, чтобы скрипт отправлял информацию об элементе непосредственно на серверную часть. Как только он это сделает, он продолжит что-то делать. Ссылка «Добавить в корзину» отличается от ссылки на веб-сайте.

Например, веб-сайт — abc.shop, а адрес внутреннего API — abc.shop/api/ … Я хочу отправить JSON, продолжающий данные элемента, на адрес api.

Можно ли отправить POST-запрос с помощью puppeteer на другой адрес, и если да, то как?

Ответ №1:

Вы можете использовать page.evaluate для отправки post-запроса с помощью fetch api.

 await page.evaluate(() => {
  return fetch('url', {method: 'POST', body: 'test' }).then(res => res.json());
});
  

https://pptr.dev/#?product=Puppeteeramp;version=v3.3.0amp;show=api-pageevaluatepagefunction-args

Комментарии:

1. Это сработало. Я делал это с помощью await fetch внутри evaluate, и это не сработало.