You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python+Selenium如何获取Facebook上悬停后才生效的评论链接?

解决Facebook爬虫悬停才加载评论链接的方案

针对你遇到的日期链接hover前为href='#'的场景,有两种可直接落地的实现思路:

方案1:用Selenium模拟鼠标悬停触发链接加载

这是最贴合前端交互逻辑的实现方式,直接调用Selenium的ActionChains类模拟悬停动作,触发前端渲染真实链接后再提取即可,示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
# 打开目标FB页面后,先滚动加载所有需要的帖子
# 定位所有日期元素,这里的选择器你可以根据自己的页面结构调整
date_elements = driver.find_elements(By.CSS_SELECTOR, 'your-date-element-selector')

for ele in date_elements:
    # 模拟悬停到当前日期元素
    ActionChains(driver).move_to_element(ele).perform()
    # 显式等待,直到href属性不再是#
    WebDriverWait(driver, 5).until(
        lambda x: ele.get_attribute('href') != '#'
    )
    # 提取真实链接
    real_url = ele.get_attribute('href')
    print(real_url)
    # 批量操作加短延迟避免触发反爬
    time.sleep(0.5)

你观察到的aria-describedby是悬停后生成的提示浮层的关联属性,不影响链接提取,只要确保悬停后href更新再提取即可。

方案2:直接拼接链接(更高效,无需模拟交互)

FB的帖子链接规则是固定的,格式为https://www.facebook.com/[用户名]/posts/[帖子ID],你可以直接从日期元素的data-ft、data-post-id等自定义属性中提取到帖子ID,再结合页面对应的用户名直接拼接出完整链接,完全不用处理悬停逻辑,爬取效率更高,也更不容易被反爬策略识别。

最后注意:如果是批量爬取FB内容,建议控制请求频率,做好账号隔离,避免被限制访问。

内容的提问来源于stack exchange,提问作者Николай Нарушев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:36:03