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

如何用Python读取Excel列URL调用Chrome爬取数据后回存Excel

实现方案

前置依赖安装

你需要先安装用到的Python库,执行以下命令即可:

pip install pandas openpyxl selenium
  • pandas + openpyxl:负责Excel文件的读取和写入
  • selenium:负责控制Chrome浏览器打开网页、提取动态渲染的内容,4.0+版本会自动匹配安装对应版本的ChromeDriver,无需手动下载

实现逻辑

  1. 读取Excel中存储URL的指定列,转为可遍历的序列
  2. 初始化Chrome浏览器驱动,配置全局等待时长
  3. 循环遍历每一条URL,打开页面后定位提取目标内容,遇到异常标记为爬取失败,每次请求后加入随机等待避免触发反爬
  4. 所有URL处理完成后,将爬取结果写入Excel的指定列

可直接复用的代码示例

你只需要修改代码开头的配置项,适配你自己的Excel路径、列名、目标元素定位规则即可:

import pandas as pd
import time
import random
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException, NoSuchElementException

# -------------------------- 自定义配置区域 --------------------------
EXCEL_PATH = "你的文件路径.xlsx"  # 替换为你的Excel文件实际路径
URL_COL_NAME = "url"  # 替换为Excel中存储URL的列名
SAVE_COL_NAME = "爬取结果"  # 替换为你要存储爬取数据的列名
# 替换为你要爬取的元素CSS选择器,示例为页面一级标题的选择器
TARGET_SELECTOR = "h1.page-title"
MAX_WAIT = 3  # 每个页面最长等待加载的秒数
MIN_SLEEP = 1  # 两次请求之间的最短等待秒数
MAX_SLEEP = 2  # 两次请求之间的最长等待秒数
# -------------------------------------------------------------------

# 读取Excel
df = pd.read_excel(EXCEL_PATH, engine="openpyxl")
result_list = []

# 初始化Chrome浏览器
driver = webdriver.Chrome()
driver.implicitly_wait(MAX_WAIT)

try:
    for url in df[URL_COL_NAME]:
        try:
            driver.get(url)
            # 提取目标内容
            target_content = driver.find_element(By.CSS_SELECTOR, TARGET_SELECTOR).text.strip()
            result_list.append(target_content)
        except (TimeoutException, NoSuchElementException):
            # 页面加载超时或者找不到目标元素时,标记为爬取失败
            result_list.append("爬取失败")
        # 随机等待,降低被反爬拦截的概率
        time.sleep(random.uniform(MIN_SLEEP, MAX_SLEEP))
finally:
    # 确保程序异常时也会关闭浏览器
    driver.quit()

# 结果写回Excel
df[SAVE_COL_NAME] = result_list
df.to_excel(EXCEL_PATH, index=False, engine="openpyxl")
print("所有URL处理完成,结果已保存")

优化建议

  • 如果你要爬取的页面是静态页面,没有JS动态渲染的内容,可以把selenium替换为requests + BeautifulSoup的组合,不需要打开浏览器,爬取速度会提升数倍
  • 4000条URL处理耗时较长,可以引入tqdm库添加进度条,直观查看处理进度
  • 如果担心程序中途崩溃丢失已爬取的数据,可以每爬100条就存一次临时文件,不要等全部爬完再统一存储

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:54:06