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

标签 facebook xpath puppeteer

更新

我遇到的问题可以在 Chrome 中重现,无需使用 puppeteer。我可以在浏览器中看到文本,但无法通过 JavaScript 控制台访问数据。

原创

Facebook 隐私设置页面有从浏览器可见的选项,我可以检查它们。问题是 document.querySelector 的值为 null。

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/

相关文章:

python - selenium python 元素从下拉菜单中选择

ios - PFFacebookUtils -

variables - 将变量传递给xquery xpath属性查询

python - Scrapy无法解析链接

javascript - Puppeteer:打开一个页面,获取数据,返回上一页,进入新页面获取数据

javascript - Puppeteer 中的重复请求 ID

javascript - 从 iframe 中抓取文本

facebook - 如何在本地机器上使用 google app engine 测试开发 facebook app

javascript - angularjs-文本区域中的数据绑定(bind)问题

facebook - 如何从其他网站导入 Facebook 好友