有不有朋友抓过Facebook的数据?

最近有爬取Facebook(PC)端,但是在利用搜索接口搜帖子进行翻页的时候,始终找不到它POST的参数的构造规律。有不有大佬指导一下思路。它在翻页的时候提交的参数大致如下

__a:1
__af:h0
__be:1
__dyn:5V4cjLx2ByK5A9UoHSEWC5ER6yUmyVbGHyEyeWrWo8ovyui9zob4q2i5UK3u2O2KfgjyRUC6UnGiidzemUG4Xze2y5pQEd8HDBxe6oGq4e9Dxm5K5V8O5UlwQxSayrgS2m4o9E9omUmC-Wx29gqx-EuAx2dx_xq2WVVonwVCwTzEpKHxx1ybyVoyqmcxO12zU9oK7Uy5uazrAwIxRa8UK8Bz-icK8xy78-5E-bQ6eaCyo8E
__pc:PHASED:DEFAULT
__req:1l
__rev:3380385
__spin_b:trunk
__spin_r:3380385
__spin_t:1508318337
__user:100009421406062
fb_dtsg:AQECj7of0hkv:AQHa4KZbfIw3
jazoest:26581696710655111102481041071185865817297527590981027311951
ph:C3

这个__dyn让人很头痛,我找到它的js文件了,却读不懂。除此之外,还有一个数据很长的data,由于篇幅有限,我这里并没有贴出来。

希望有知道的大佬能帮一下,谢谢了。

阅读 8.6k
2 个回答
新手上路,请多包涵

事实上可以不用__dyn,URL链接里有个data键值对,是一串json,只要把这个弄出来就行了

新手上路,请多包涵

facebook参数一直没有变化,变的是内部逻辑和控制。
__dyn目前非常重要是做服务控制的。最开始首页会加载一个BootloaderConfig,返回"jsRetries": [200, 500],**329]....[5529]的一个脚本,做过node.js实际就知道这是个服务器脚本,有N个服务响应到该客户端,329,5529就是一个长数组的索引,此索引base64调用toCompressedString()将长数组变成__dyn,里面的那个i.$1=[0,0,0...第329位置是1,....5529位置是1],__dyn不是客户端创建的,只是客户端反向了一下服务器服务方法,__dyn就和我们常写的webservice类似,目前如果随意修改会封号,必须要保持和服务器一致。

cursor在返回段payload的code的script片段中。第1个片段就是facebook帖子内容。第2个片段就是下一页的cursor,当片段没有json段:target=see_more_pager。就没有下一页了。
频繁调用会封号!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题