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

从Pandas数据框列提取的URL在Selenium中被截断的问题排查求助

问题分析与解决方案

你的问题根源出在URL的提取方式上——你把单行DataFrame对象转成字符串再拆分的操作,会触发pandas默认的长文本截断机制,导致最终传入Selenium的是不完整的URL。

错误原因拆解

当你执行str(df.iloc[[i]]['url'])时,df.iloc[[i]]返回的是一个包含单行数据的DataFrame对象,转成字符串后,pandas会自动截断过长的内容(比如你的谷歌地图URL),最终通过split()[1]拿到的自然是被截断的URL片段。

正确的URL提取方式

直接提取单元格的标量值即可,完全不需要转成整行字符串:

for i in range(0, 2):  # 先测试部分元素验证功能是否正常
    driver = webdriver.Chrome()
    # 直接获取单行单列的纯字符串URL
    url = df.iloc[i]['url']  # 等价写法:df['url'].iloc[i]
    driver.get(url)
    time.sleep(5)
    driver.find_element_by_xpath('//*[@id="QA0Szd"]/div/div/div[1]/div[2]/div/div[1]/div/div/div[2]/div[1]/div[1]/div[2]/div/div[1]/div[2]/span[2]/span[1]/button').click()
    time.sleep(1)

额外优化建议

另外,不建议在循环内重复创建driver实例——频繁启动/关闭浏览器会极大降低效率,还可能触发反爬机制。推荐把浏览器初始化放在循环外:

# 只初始化一次浏览器
driver = webdriver.Chrome()

for i in range(0, 2):
    url = df.iloc[i]['url']
    driver.get(url)
    time.sleep(5)
    # 执行点击等操作
    driver.find_element_by_xpath('//*[@id="QA0Szd"]/div/div/div[1]/div[2]/div/div[1]/div/div/div[2]/div[1]/div[1]/div[2]/div/div[1]/div[2]/span[2]/span[1]/button').click()
    time.sleep(1)

# 循环结束后统一关闭浏览器
driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:52:32