Files
RSSHub/lib/v2/picnob/utils.js
T
MichealDeath 3f7c8d9d0a fix(route): picnob (#13986)
* fix(route): picnob

* fix(route): picnob. Use one browser session to do all http requests.

* fix(route): picnob. Use puppeteer as a fallback option when a normal request returns a 403 error.

* fix(route): picnob. Block unnecessary requests when using puppeteer.

* fix(route): picnob. Adaptation of JSON responses when using puppeteer for http requests.

* Update lib/v2/picnob/user.js

---------
2023-12-14 00:05:09 +08:00

25 lines
667 B
JavaScript

const puppeteerGet = async (url, browser) => {
let data;
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', (request) => {
request.resourceType() === 'document' ? request.continue() : request.abort();
});
page.on('response', async (response) => {
if (response.request().url().includes('/api/posts')) {
data = await response.json();
} else {
data = await response.text();
}
});
await page.goto(url, {
waitUntil: 'domcontentloaded',
});
await page.close();
return data;
};
module.exports = {
puppeteerGet,
};