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

Airflow爬虫任务无法发起网络请求,寻求网络配置指导

Airflow任务外部请求卡住的排查与解决

可能原因及对应解决方案

1. 部署环境的网络代理限制

如果Airflow部署在企业内网或私有环境中,大概率是未配置外部访问代理——本地环境可直接访问外网,但Airflow所在服务器被网络策略限制。

  • 代码内临时解决:显式设置代理并添加超时参数,避免无限等待
    import requests
    
    proxies = {
        "http": "http://你的代理IP:端口",
        "https": "http://你的代理IP:端口",
    }
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}
    
    # 10秒超时,避免任务永久卡住
    response = requests.get("http://youtube.com", proxies=proxies, headers=headers, timeout=10)
    print(response)
    
  • 全局配置:修改Airflow的airflow.cfg,添加http_proxy和https_proxy环境变量;若用容器部署(Docker/K8s),直接在容器配置中注入代理环境变量。

2. 目标网站反爬/IP封禁

YouTube会检测异常请求,Airflow服务器的IP可能被判定为非人类访问,导致请求被挂起。

  • 解决:添加浏览器UA头模拟正常访问,同时强制设置超时
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}
    response = requests.get("http://youtube.com", headers=headers, timeout=10)
    

3. 执行器的网络隔离

使用DockerExecutor/KubernetesExecutor时,任务运行的容器可能默认无外网访问权限。

  • DockerExecutor:检查容器网络模式,确保不是完全隔离的模式,或配置容器网络策略允许出站访问
  • KubernetesExecutor:验证Pod的网络策略,允许访问外部IP,或给Pod注入代理环境变量

4. 防火墙/安全组限制

Airflow所在服务器的防火墙或云服务商安全组,禁止了80/443端口的出站请求。

  • 解决:联系运维人员,开放服务器到外网的HTTP(80)、HTTPS(443)端口出站权限

调试建议

  1. 先在Airflow服务器/容器内手动测试:执行curl http://youtube.com,若curl也卡住,说明是网络环境问题;若curl能正常返回,再排查代码层面
  2. 给代码添加异常捕获,打印错误信息定位问题:
    @task(task_id="run_newspaper")
    def my_function():
        try:
            headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}
            response = requests.get("http://youtube.com", headers=headers, timeout=10)
            print(response.status_code)
            print("my_function")
        except Exception as e:
            print(f"请求出错: {str(e)}")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:05:14