From c43cd4a4a25d4f3b4160ab60fc9bddb35b50045f Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 28 Jul 2022 18:48:19 +0000 Subject: [PATCH] fix(route): xiaohongshu throw captcha error --- lib/v2/xiaohongshu/user.js | 7 ++++++- lib/v2/xiaohongshu/util.js | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/v2/xiaohongshu/user.js b/lib/v2/xiaohongshu/user.js index b2ff4851c..32d211f34 100644 --- a/lib/v2/xiaohongshu/user.js +++ b/lib/v2/xiaohongshu/user.js @@ -7,7 +7,12 @@ module.exports = async (ctx) => { const category = ctx.params.category; const url = `https://www.xiaohongshu.com/user/profile/${userId}`; - const main = await getContent(url, ctx.cache); + let main; + try { + main = await getContent(url, ctx.cache); + } catch (e) { + throw Error('滑块验证'); + } const userDetail = main.userDetail; const description = `${userDetail.nickname} • 小红书 / RED`; if (category === 'notes') { diff --git a/lib/v2/xiaohongshu/util.js b/lib/v2/xiaohongshu/util.js index 14c7ba9d7..d74168541 100644 --- a/lib/v2/xiaohongshu/util.js +++ b/lib/v2/xiaohongshu/util.js @@ -11,6 +11,12 @@ const getContent = (url, cache) => page.on('request', (request) => { request.resourceType() === 'document' || request.resourceType() === 'script' || request.resourceType() === 'xhr' ? request.continue() : request.abort(); }); + page.on('response', (response) => { + if (response.url().includes('captcha.fengkongcloud.cn')) { + page.close(); + throw Error('滑块验证'); + } + }); await page.goto(url); await page.waitForSelector('.pc-container'); const initialSsrState = await page.evaluate(() => window.__INITIAL_SSR_STATE__);