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

如何使用Pandas逐行读取Excel,结合Selenium实现Facebook登录循环

使用Pandas+Selenium实现Facebook批量自动登录

一、先修正你Pandas读取Excel的代码

你的原代码里有两个明显问题:一是f1变量没定义就直接用,会直接报错;二是for i in df遍历的是列名,不是每行的数据,根本拿不到账号密码。先把这部分改对:

import pandas as pd

# 直接读取Excel到DataFrame,不用多此一步再转一次
df = pd.read_excel(r'file.xlsx')

# 先确认下Excel里的列名是不是和你写的'Name'、'Pass'一致,避免列名不匹配报错
print("Excel里的列:", df.columns.tolist())

# 两种逐行遍历的方法,选一种就行
# 方法1:用iterrows(),能拿到行索引和行数据
for index, row in df.iterrows():
    username = row['Name']
    password = row['Pass']
    print(f"当前账号:{username},密码:{password}")

# 方法2:用itertuples(),比iterrows()效率高,适合数据量大的情况
for row in df.itertuples(index=False):
    username = row.Name
    password = row.Pass
    print(f"当前账号:{username},密码:{password}")

二、结合Selenium实现Facebook自动登录

1. 先准备依赖

先装Selenium:

pip install selenium

然后下载对应浏览器的驱动(比如Chrome的ChromeDriver,版本要和你电脑上的Chrome版本匹配),把驱动放到Python能找到的路径,或者代码里直接指定驱动路径。

2. 完整可运行代码

import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 读取Excel里的账号密码
df = pd.read_excel(r'file.xlsx')

# 初始化Chrome驱动,要是驱动不在系统PATH里,就加executable_path参数指定路径,比如:
# driver = webdriver.Chrome(executable_path=r'C:\你的驱动路径\chromedriver.exe')
driver = webdriver.Chrome()
driver.maximize_window()

# 逐行登录每个账号
for index, row in df.iterrows():
    username = row['Name']
    password = row['Pass']
    print(f"正在登录账号:{username}")

    driver.get('https://www.facebook.com/login/')
    
    try:
        # 等用户名输入框加载出来,再输入账号(避免页面没加载完报错)
        username_input = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, 'email'))
        )
        username_input.clear()
        username_input.send_keys(username)

        # 输入密码
        password_input = driver.find_element(By.ID, 'pass')
        password_input.clear()
        password_input.send_keys(password)

        # 点击登录按钮
        login_btn = driver.find_element(By.NAME, 'login')
        login_btn.click()

        # 给点时间让页面跳转,也可以加判断检查是否登录成功
        time.sleep(3)

        # 如果要批量登录多个账号,这里可以加退出登录的逻辑,比如:
        # driver.get('https://www.facebook.com/logout.php')
        # time.sleep(2)

    except Exception as e:
        print(f"账号{username}登录失败:{str(e)}")
        continue

# 全部完成后关闭浏览器
driver.quit()

三、注意事项

  • 确保Excel里的列名是Name和Pass,大小写要和代码里一致,不然会找不到数据。
  • Facebook有反爬机制,短时间内登太多账号大概率会触发验证码或者账号限制,别搞太猛,适当延长等待时间。
  • Selenium版本和浏览器驱动版本必须匹配,版本不兼容会直接启动不了浏览器。
  • 如果哪天登录页面的元素ID/Name变了,要自己重新定位元素(比如用F12开发者工具查新的元素选择器)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:55:13