mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-24 23:12:34 +08:00
* 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 ---------
25 lines
667 B
JavaScript
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,
|
|
};
|