Twitter 被无头 Chrome 木偶操作者屏蔽

0 node.js puppeteer

    ,'--lang=en-US,en;q=0.9'],slowMo: 10,userDataDir: './twitter/myUserDataDir'})
    const page = await browser.newPage()
    await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/73.0.3683.75 Safari/537.36');
    await page.setExtraHTTPHeaders({
        'Accept-Language': 'en-US,en;q=0.9'
    });
    
    const context = browser.defaultBrowserContext();
    context.overridePermissions("https://twitter.com", ["geolocation", "notifications"]);
    await page.setViewport({width: 1280, height: 800});
Run Code Online (Sandbox Code Playgroud)

当 puppeteer 中的 headless = true 时,twitter 网站无法工作,有人可以告诉我如何让它工作吗?

jha*_*Pac 5

函数中使用的字符串参数page.setUserAgent应该是常规的 Chrome 用户代理。HeadlessChrome从您正在使用的字符串中删除。您的函数调用应如下所示:

await page.setUserAgent(
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
)
Run Code Online (Sandbox Code Playgroud)

注意它是Chrome/95.0.4638.69 Safari/537.36和不是HeadlessChrome/73.0.3683.75 Safari/537.36