Python遍历Excel数据在谷歌搜索栏搜索的代码问题排查
问题排查与修复方案
核心问题分析
- 循环对象错误:
indexx = [df]是把整个DataFrame包装成单元素列表,循环只会执行一次,且直接将DataFrame对象传入send_keys(),程序无法识别为有效搜索文本。 - 未指定搜索列:没有明确从CSV中提取需要搜索的具体列数据,导致无法获取单个搜索关键词。
修复后的代码
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import pandas as pd import time # 读取CSV文件,将"search_col"替换为你实际要搜索的列名 df = pd.read_csv("C:\\Users\\Carson\\properties1.csv") # 提取目标列的所有有效内容,排除空值 search_terms = df["search_col"].dropna().tolist() driver = webdriver.Chrome("C:/Users/Carson/Desktop/chromedriver.exe") driver.get("https://www.google.com") try: for term in search_terms: # 等待搜索框可点击 search_box = WebDriverWait(driver, 7).until( EC.element_to_be_clickable((By.NAME, 'q')) ) search_box.clear() # 清空搜索框残留内容 search_box.send_keys(str(term)) # 确保搜索内容为字符串格式 search_box.send_keys(Keys.RETURN) time.sleep(2) # 等待搜索结果加载,可根据网络情况调整时长 driver.back() time.sleep(1) # 返回首页后等待页面加载 except Exception as e: print(f"循环执行失败: {str(e)}") finally: driver.quit()
关键修复点说明
- 正确遍历目标数据:替换错误的循环对象,改为提取CSV中指定列的所有值,用
dropna()过滤空值避免报错。 - 优化搜索框操作:每次循环前调用
clear()清空输入框,防止多次输入内容叠加。 - 类型转换保障:用
str(term)确保搜索内容为字符串,避免非文本类型数据导致的输入失败。 - 适配页面加载:添加短暂等待时间,适配谷歌页面的加载速度,避免操作时序错误。
- 异常处理优化:捕获具体异常信息便于排查,用
finally确保浏览器无论成败都会关闭。
内容的提问来源于stack exchange,提问作者Carson Cramer
相关产品推荐
相关产品推荐

