能否在Kaggle在线笔记本运行Selenium脚本?实现方法及CSV更新需求
在Kaggle在线笔记本中运行Selenium脚本并实现数据爬取与自动调度
可以在Kaggle在线笔记本中运行Selenium脚本,但需要先配置Chrome浏览器的无头运行环境,以下是具体实现步骤:
1. 安装依赖组件
Kaggle默认没有预装Chrome浏览器和Selenium相关驱动,需先执行以下命令安装:
!apt-get update && apt-get install -y chromium-browser !pip install selenium webdriver-manager
2. 初始化Selenium浏览器(无头模式)
由于Kaggle是无界面运行环境,必须启用Chrome的无头模式,并配置必要参数避免权限或内存问题,示例代码如下:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.options import Options # 配置Chrome运行选项 chrome_options = Options() chrome_options.add_argument("--headless") # 无头模式,无界面运行 chrome_options.add_argument("--no-sandbox") # 禁用沙箱,规避权限限制 chrome_options.add_argument("--disable-dev-shm-usage") # 解决容器内存不足问题 chrome_options.add_argument("--window-size=1920x1080") # 设置窗口尺寸,适配页面元素定位 # 初始化浏览器驱动 driver = webdriver.Chrome( service=Service(ChromeDriverManager().install()), options=chrome_options ) # 测试访问目标网站 driver.get("https://example.com") print(driver.title) # 在这里编写你的数据爬取逻辑... # 爬取完成后关闭浏览器 driver.quit()
3. 爬取数据并更新CSV文件
爬取到数据后,可通过Pandas读取现有CSV(若存在)并追加新数据,示例代码:
import pandas as pd import os # 假设爬取到的结构化数据存储在data_list中 data_list = [ {"字段1": "数据1", "字段2": "数据2"}, {"字段1": "数据3", "字段2": "数据4"} ] new_data_df = pd.DataFrame(data_list) # 定义CSV存储路径(Kaggle的working目录为可写目录) csv_file_path = "/kaggle/working/your_data.csv" # 检查文件是否存在,存在则追加,不存在则新建 if os.path.exists(csv_file_path): existing_data_df = pd.read_csv(csv_file_path) updated_data_df = pd.concat([existing_data_df, new_data_df], ignore_index=True) else: updated_data_df = new_data_df # 保存更新后的CSV updated_data_df.to_csv(csv_file_path, index=False)
4. 设置自动调度运行
Kaggle支持按时间间隔自动调度笔记本运行,操作步骤:
- 点击笔记本右上角的「Schedule」按钮
- 设置调度频率(每日、每周等)和具体运行时间
- 确保在「Save Version」选项中选择「Save & Run All (Commit)」,这样调度运行时会完整执行所有代码流程
- 调度生成的CSV文件会保存在对应版本的「Output」中,可在笔记本的「Versions」标签下查看下载
内容的提问来源于stack exchange,提问作者AyFait Jr.
相关产品推荐
相关产品推荐

