You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取Facebook页面帖子的点赞时间?能否通过Like_ID推测或估算?

好问题!我来帮你梳理下关于抓取Facebook点赞时间的可行方案:

能否通过Like_ID确定点赞时间?

答案是可以估算,甚至得到精确到秒的UTC时间。Facebook的Like_ID属于它的Object ID体系,这个ID的前40位二进制(对应10位十六进制字符)其实是从2010年1月1日00:00:00 UTC开始计算的秒数。通过解析这部分内容,就能反推出点赞的大致时间。

举个Python的实现例子:

import datetime

def get_like_time_from_id(like_id):
    # 提取Like_ID的前10位十六进制字符
    timestamp_hex = like_id[:10]
    # 转成十进制秒数
    seconds_since_epoch = int(timestamp_hex, 16)
    # Facebook的时间起始点是2010-01-01 UTC
    base_time = datetime.datetime(2010, 1, 1, tzinfo=datetime.timezone.utc)
    # 计算点赞时间
    like_time = base_time + datetime.timedelta(seconds=seconds_since_epoch)
    return like_time

# 测试示例
sample_like_id = "1892345670abcdef1234"
print(get_like_time_from_id(sample_like_id))
# 输出类似:2024-05-20 17:30:45+00:00

这个方法的精度是秒级,足够满足你的需求。不过要注意:如果未来Facebook修改Object ID的生成规则,这个方法可能会失效,但目前是稳定可用的。

其他抓取点赞时间的替代方法

如果解析Like_ID的方式不够满足你的需求,还有这些更直接的方案:

  • 合规优先:使用Facebook Graph API
    如果你有合法的开发者权限(比如页面授权、企业账号),直接调用Graph API的/{post-id}/likes接口,加上fields=created_time参数,就能直接获取到精确的UTC点赞时间。比如请求路径类似:GET /v19.0/{post-id}/likes?fields=created_time。记得严格遵守Facebook的API服务条款,避免账号被限制。

  • 抓取页面静态/动态内容
    对于公开可访问的页面,你可以:

    • 用HTML解析库(比如Python的BeautifulSoup、JS的Cheerio)提取页面中隐藏的时间属性:有些点赞条目会把时间放在data-tooltip-content或者aria-label里,格式类似"John Doe liked this on May 20, 2024 at 5:30 PM UTC",你可以用正则表达式提取并转换为标准时间格式。
    • 用无头浏览器(比如Puppeteer、Playwright)处理动态加载内容:Facebook的点赞列表通常是滚动加载的,无头浏览器可以模拟用户滚动行为,等时间元素渲染完成后再抓取。这种方法要注意反爬机制,比如IP轮换、避免频繁请求。

内容的提问来源于stack exchange,提问作者Ruan

火山引擎 最新活动