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

如何用Python Selenium获取Instagram热门帖子用户名?XPath点击问题求解

Instagram热门帖子点击与用户名抓取解决方案

一、热门帖子的XPath定位方法

Instagram页面元素的class名会不定期更新,以下是几种当前可用的定位方式,失效时可通过浏览器F12开发者工具重新获取:

  • 定位热门区域的首个帖子://div[contains(@class, '_aagu')]/div[contains(@class, '_aagw')]
  • 通过缩略图关联定位帖子按钮://img[contains(@alt, '热门帖子')]/ancestor::div[@role='button']
  • 先锁定热门板块再取子元素://section[contains(@class, '_aamu')]//div[@role='button']

二、稳定执行点击操作的技巧

  • 必须等元素加载完成再点击,用显式等待避免报错:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    # 等待10秒,直到帖子元素可点击
    target_post = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, '_aagu')]/div[contains(@class, '_aagw')]"))
    )
    target_post.click()
    
  • 若遇到元素被遮挡(比如弹窗、顶部导航栏),改用JS点击:
    driver.execute_script("arguments[0].click();", target_post)
    

三、点击后抓取用户名的XPath

帖子弹窗打开后,用户名通常在顶部区域,可用以下XPath定位:

  • 定位用户名链接://h2[contains(@class, '_aacl')]/a
  • 直接提取用户名文本:driver.find_element(By.XPATH, "//h2[contains(@class, '_aacl')]/a").text

四、保存用户名到CSV的代码示例

import csv

# 假设已抓取到用户名列表,存到usernames变量中
usernames = ["demo_user1", "demo_user2"]

# 写入CSV文件
with open('instagram_hot_post_users.csv', 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.writer(csv_file)
    # 写入表头
    writer.writerow(["Username"])
    # 批量写入用户名
    for name in usernames:
        writer.writerow([name])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:22:13