gpt4 book ai didi

facebook - Puppeteer 在 Facebook 设置页面上返回 null

转载 作者:行者123 更新时间:2023-12-04 09:32:35 24 4
gpt4 key购买 nike

更新
我遇到的问题可以在没有 puppeteer 的情况下在 Chrome 中重现。我可以在浏览器中看到文本,但无法通过 javascript 控制台访问数据。
原创
facebook 隐私设置页面具有从浏览器可见的选项,我可以检查它们。问题是 document.querySelector 的值为空。
enter image description here
这是网址:
https://www.facebook.com/settings
这是代码

const el = await page.$x(
'/html/body/div[1]/div[3]/div[1]/div/div[2]/div[2]/div[2]/div/ul/li[1]/div/div/ul/li[1]/a/span[3]/div/div[2]'
);
const v = await page.evaluate((div) => div.textContent, el[0]);
我也尝试过使用 JS Path
const v = await page.evaluate(
() =>
(<HTMLElement>(
document.querySelector(
'#u_fetchstream_2_4 > li:nth-child(1) > div > div > ul > li:nth-child(1) > a > span.fbSettingsListItemContent.fcg > div > div._nlm.fwb'
)
)).innerText
);
总是收到以下错误:
Error: Evaluation failed: TypeError: Cannot read property 'innerText' of null
我已经确认该属性为空,直到我右键单击检查页面上的任何值——仍然显示页面的机器人检测?!
还尝试在 Chrome 的控制台中使用 xpath:
$x('//*[text()="Who can see your future posts?"]')
返回 []

最佳答案

您尝试以不同的视口(viewport)尺寸打开 URL 的可能性很高。这种问题发生在响应式网站中,其中选择器与您在浏览器中选择它们的方式非常不同。
最简单的方法是禁用默认的 800x600 分辨率并打开 headful 模式,这样您就可以看到正在发生的事情以及它可能失败的原因。

const browser = await puppeteer.launch({defaultViewport: null, headless: false});
至于解封,facebook等大公司真的不希望你去刮。所以你需要结合使用好的代理、用户代理并保持低调。
你可以试试隐形插件,它会尝试一些解锁技术。
const puppeteer = require('puppeteer-extra')
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())
免责声明:强烈建议使用 facebook 的虚拟帐户以避免被禁止。他们真的不喜欢他们平台上的机器人。

关于facebook - Puppeteer 在 Facebook 设置页面上返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62762232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com