React开发Facebook商业数据爬取网站:如何获取fb_dtsg、lsd及广告创建限额
获取Facebook商业广告创建限额及
fb_dtsg/lsd字段的解决方案 一、fb_dtsg和lsd的获取方式
这俩是Facebook用来防CSRF攻击的令牌,没法通过API生成,只能从已登录状态下的Facebook页面DOM里提取:
lsd:找页面里的隐藏输入框<input type="hidden" name="lsd" value="xxx">,或者直接取全局变量window._LSD的值fb_dtsg:同理,找name为fb_dtsg的隐藏输入框,或者全局变量window.fb_dtsg
二、React环境下的客户端提取流程
如果你的爬虫是基于浏览器自动化工具(比如Puppeteer、Playwright)配合React渲染,按下面步骤来:
- 先模拟登录Facebook Business Manager,确保会话有效
- 加载任意已登录的FB页面,执行以下代码提取令牌:
// 提取lsd const lsd = document.querySelector('input[name="lsd"]')?.value || window._LSD; // 提取fb_dtsg const fbDtsg = document.querySelector('input[name="fb_dtsg"]')?.value || window.fb_dtsg; - 把这两个值拼接到你找到的API参数里,发起GET请求就能拿到限额数据
三、更稳妥的官方方案:用Graph API
爬非公开API风险高,Facebook随时可能改接口,优先用官方Graph API:
- 调用
/{business-id}/owned_ad_accounts接口,拿到所有关联的广告账户 - 对每个广告账户调用
/{ad-account-id},查看capabilities字段,里面包含广告创建限额相关的权限信息 - 或者直接调用
/{business-id}接口,检查business_capabilities字段,部分限额数据会在这里返回
四、避坑提醒
- 非公开API没有稳定性保障,哪天接口变了你的服务直接崩
- 用Graph API需要申请
ads_management、business_management这类权限,得通过Facebook审核 - 频繁爬取会被封IP或限制账号,控制好请求频率
内容的提问来源于stack exchange,提问作者blackmouse572
相关产品推荐
相关产品推荐

