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

如何在GCP部署Python爬虫代码并实现每小时自动运行写入BigQuery

GCP定时运行Python爬虫并写入BigQuery部署方案

前置准备

  • 已开通GCP相关服务权限:Cloud Functions、Cloud Scheduler、BigQuery,项目额度正常
  • 本地调试完成爬虫代码,输出数据结构和提前创建的BigQuery表结构完全匹配

推荐部署方案

无服务器架构:Cloud Functions + Cloud Scheduler,无需维护服务器,按量付费,适配小时级轻量爬虫场景完全够用。如果爬虫单次运行时长超过9分钟(Cloud Functions最大超时限制),可以替换为Cloud Run部署,触发逻辑一致。

分步操作指南

1. 改造爬虫代码适配Cloud Functions

  • 调整代码入口为Cloud Functions兼容的触发格式,参考示例:
import requests
from bs4 import BeautifulSoup
from google.cloud import bigquery

# 入口函数名后续部署时需要对应填写
def crawl_and_load_to_bq(event, context):
    # 此处粘贴你已经调试完成的爬虫逻辑
    crawled_data = [
        # 这里是你爬取到的结构化数据,格式需匹配BQ表字段
        # {"site": "xxx", "content": "xxx", "crawl_time": "2024-xx-xx"}
    ]

    # 写入BigQuery逻辑
    bq_client = bigquery.Client()
    # 替换为你自己的BQ表路径:项目ID.数据集ID.表名
    target_table = "your-project-id.your-dataset-id.your-table-name"
    insert_errors = bq_client.insert_rows_json(target_table, crawled_data)
    
    if insert_errors:
        raise Exception(f"BQ写入失败,错误信息:{insert_errors}")
    return "任务执行成功"
  • 在代码同级目录创建requirements.txt,填入所有依赖包及对应版本,示例:
requests==2.31.0
beautifulsoup4==4.12.3
google-cloud-bigquery==3.12.0

2. 部署Cloud Functions服务

  • 进入GCP控制台Cloud Functions页面,点击「创建函数」
  • 基础配置:
    • 环境选择第一代即可,新手操作门槛更低
    • 触发类型选「HTTP」,测试阶段可先勾选「允许未通过身份验证的调用」,上线后可单独配置Cloud Scheduler调用权限
    • 资源配置:内存分配256MB~512MB,超时时间设置为540秒(最大值,避免爬取时间过长被强制中断)
  • 代码配置:
    • 运行时选择和你本地调试一致的Python3.x版本
    • 把改造后的Python代码、requirements.txt内容粘贴到对应编辑框,入口函数填写crawl_and_load_to_bq
    • 点击「部署」,等待部署完成后点击「测试」,确认函数运行正常、数据已正确写入BigQuery

3. 配置定时触发规则

  • 进入GCP控制台Cloud Scheduler页面,点击「创建作业」
  • 配置参数:
    • 频率填写0 * * * *,对应每小时整点执行一次
    • 目标类型选「HTTP」,URL填之前部署的Cloud Functions的触发URL
    • HTTP方法选「POST」,其余配置保持默认即可,点击创建完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:27:03