如何使用Selenium Python在Excel中搜索文本并提取行数据
解决方案
直接用Python脚本整合Selenium和Excel数据读取逻辑,完全自动化整个流程,比手动用VLOOKUP高效得多。具体步骤如下:
第一步:把Excel数据加载到内存并建立快速查询映射
用pandas读取Excel文件,将学生ID作为索引,把每行数据转换成字典,这样查询时能直接通过ID快速定位,不用每次去Excel里搜索。第二步:用Selenium提取网页上的学生ID
定位网页表格里的学生ID元素,获取文本内容。第三步:查询对应学生的信息
从之前建立的字典里直接取出该ID对应的姓名、父亲姓名等数据。第四步:用Selenium填充高校网站的表单
定位表单里的输入框,把查到的信息填进去。
示例代码
首先安装依赖:
pip install selenium pandas openpyxl
完整脚本:
from selenium import webdriver from selenium.webdriver.common.by import By import pandas as pd # 1. 读取Excel数据并构建查询字典 df = pd.read_excel('学生数据.xlsx', engine='openpyxl') # 假设Excel里的学生ID列名为"学生ID",姓名列"姓名",父亲姓名列"父亲姓名" student_lookup = df.set_index('学生ID').to_dict('index') # 2. 启动浏览器,获取网页上的学生ID driver = webdriver.Chrome() # 需要提前下载ChromeDriver并配置路径 driver.get('目标网页地址') # 定位网页表格中的学生ID元素,这里假设元素的CSS选择器是'.student-id',根据实际情况调整 student_id = driver.find_element(By.CSS_SELECTOR, '.student-id').text.strip() # 3. 查询学生信息 if student_id in student_lookup: student_info = student_lookup[student_id] student_name = student_info['姓名'] father_name = student_info['父亲姓名'] else: print(f"未找到ID为{student_id}的学生数据") driver.quit() exit() # 4. 填充高校网站表单 # 假设姓名输入框的ID是'name',父亲姓名输入框ID是'father-name',根据实际页面调整 driver.get('高校网站表单地址') driver.find_element(By.ID, 'name').send_keys(student_name) driver.find_element(By.ID, 'father-name').send_keys(father_name) # 后续可以添加提交表单等操作 # driver.find_element(By.ID, 'submit-btn').click() # 关闭浏览器 driver.quit()
注意事项
- 请根据实际网页的HTML结构调整元素定位方式(CSS选择器、ID、XPath等)
- 如果Excel数据量很大,
pandas的字典查询依然能保持高效,比VLOOKUP的手动操作快很多 - 确保ChromeDriver的版本和你的Chrome浏览器版本匹配,或者用
webdriver-manager自动管理驱动
内容的提问来源于stack exchange,提问作者Arunim Kumar
相关产品推荐
相关产品推荐

