AutomationFlowsData & Sheets › Automated Weather Reports with Bright Data & N8n

Automated Weather Reports with Bright Data & N8n

ByYaron Been @yaron-nofluff on n8n.io

This workflow automatically collects weather data from multiple sources and compiles it into comprehensive reports. It helps you make informed decisions based on accurate weather forecasts without manually checking multiple weather services.

Event trigger★★★☆☆ complexity9 nodesHTTP RequestGoogle Sheets
Data & Sheets Trigger: Event Nodes: 9 Complexity: ★★★☆☆ Added:

This workflow corresponds to n8n.io template #5226 — we link there as the canonical source.

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "2v8K3VanHj11PubB",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Weather_Report_Scraper_via_Bright_Data",
  "tags": [],
  "nodes": [
    {
      "id": "d143f06d-3ea0-4feb-9157-62bc3d28b2aa",
      "name": "Start Workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -460,
        1720
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "579b56bf-35e6-4114-947c-9e62814a2bff",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2180,
        1020
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bd02001c-f390-4138-8013-d43f89802ab5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2180,
        1360
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 1718,
        "content": "## \ud83c\udf26\ufe0f **Weather Data Scraper Automation**\n\nThis n8n automation helps you **scrape weather data from a website**, extract useful info, and **log it directly to a Google Sheet** \u2014 great for personal dashboards, weather research, or historical weather tracking.\n\n---\n\n### \ud83d\udfe2 **SECTION 1: Start & Fetch Weather via Bright Data**\n\n| \u26a1 Start Workflow                                          | \ud83c\udf10 Request Weather                                     |\n| --------------------------------------------------------- | ------------------------------------------------------ |\n| ![Start](https://img.icons8.com/ios-filled/40/rocket.png) | ![Web](https://img.icons8.com/fluency/40/internet.png) |\n\n#### \ud83e\udde9 Node 1: `Start Workflow`\n\n* **Type**: Trigger node\n* **What it does**: Starts the automation manually or through a schedule.\n* **For Beginners**: Think of this like the **\"play button\"** for your entire workflow. You can trigger it by hand or set it on a timer.\n\n#### \ud83e\udde9 Node 2: `Request/Fetch Weather via Bright Data`\n\n* **Type**: HTTP Request\n* **What it does**: Uses [Bright Data Proxy](https://brightdata.com) to send a request to a weather website and **fetch the full HTML page**, even bypassing bot protections.\n* **For Beginners**: Bright Data acts like a smart assistant that **gets web pages without getting blocked**. It makes web scraping more reliable.\n\n---\n\n### \ud83d\udfe0 **SECTION 2: Extract & Process Weather Info**\n\n| \ud83e\udde0 Extract HTML                                         | \ud83d\udccb Log to Sheet                                             |\n| ------------------------------------------------------- | ----------------------------------------------------------- |\n| ![HTML](https://img.icons8.com/color/40/html-5--v1.png) | ![Sheet](https://img.icons8.com/color/40/google-sheets.png) |\n\n#### \ud83e\udde9 Node 3: `Extract Weather Info`\n\n* **Type**: HTML Extractor\n* **What it does**: Parses the HTML and **pulls out specific info** like temperature, humidity, and conditions using CSS selectors.\n* **For Beginners**: Imagine this node as a **filter** \u2014 it sifts through a huge webpage and pulls only the useful details you care about (like the current temperature).\n\n#### \ud83e\udde9 Node 4: `Log to Weather Sheet`\n\n* **Type**: Google Sheets Integration\n* **What it does**: Appends the extracted weather info into a Google Sheet \u2014 creating a simple log or database you can review later.\n* **For Beginners**: This is where all the magic gets stored! Each run adds a new row with the latest weather so you can build a **daily weather tracker**.\n\n---\n\n### \ud83d\udce6 **SECTION 3: Output and Use**\n\n| \u2705 Final Output                                                                                                                       |\n| ------------------------------------------------------------------------------------------------------------------------------------ |\n| ![Output](https://img.icons8.com/external-flat-icons-inmotus-design/40/external-Export-File-interface-flat-icons-inmotus-design.png) |\n\n#### \ud83e\udde9 Final Output: Weather Data Stored\n\n* **What it means**: The Google Sheet now holds all the weather data you\u2019ve collected over time.\n* **How to use**: You can:\n\n  * Analyze trends \ud83d\udcc8\n  * Create dashboards \ud83d\udcca\n  * Set up alerts for specific weather events (next step!)\n  * Or just check how today compares to last week!\n\n---\n\n### \ud83e\udde0 Summary (For Beginners)\n\n> **In simple terms**:\n> You click a button (or schedule it), it gets the weather from a website using a smart fetcher (Bright Data), pulls only the info you care about, and **stores it safely in Google Sheets**.\n> It's like building your own **personal weather archive**, no coding needed!\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d22f87aa-4365-44f1-aab9-6e764af748f9",
      "name": "RequestFetch Weather via Bright data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -240,
        1720
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "n8n_unblocker"
            },
            {
              "name": "url",
              "value": "https://www.weather.com/weather/today/l/Paris,FR"
            },
            {
              "name": "country",
              "value": "fr"
            },
            {
              "name": "format",
              "value": "raw"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f28bf59a-1671-43af-9a98-0ce8cc9ca1e4",
      "name": "Extract Weather Info",
      "type": "n8n-nodes-base.html",
      "position": [
        20,
        1720
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "Temperature",
              "cssSelector": "<span data-testid=\"TemperatureValue\" class=\"CurrentConditions--tempValue--zUBSz\" dir=\"ltr\">81<span class=\"CurrentConditions--degreeSymbol--tzLy9\">\u00b0</span><span></span></span>"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "76410c0c-560c-48c2-87cd-68114b5de9ad",
      "name": "Log to Weather Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        240,
        1720
      ],
      "parameters": {
        "columns": {
          "value": {
            "City": "Paris",
            "Country": "France",
            "Temperature": "={{ $json.a }}"
          },
          "schema": [
            {
              "id": "Country",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "City",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "City",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Temperature",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Temperature",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1mpIFtKgbtV_LgxFD2LTeXbHdaMu-Qca1S9RRSlFpZWQ/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1mpIFtKgbtV_LgxFD2LTeXbHdaMu-Qca1S9RRSlFpZWQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1mpIFtKgbtV_LgxFD2LTeXbHdaMu-Qca1S9RRSlFpZWQ/edit?usp=drivesdk",
          "cachedResultName": "Weather report"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "fe209422-9127-407b-8ac8-bff7951c18ca",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -500,
        1040
      ],
      "parameters": {
        "color": 6,
        "width": 420,
        "height": 900,
        "content": "### \ud83d\udfe2 **SECTION 1: Start & Fetch Weather via Bright Data**\n\n| \u26a1 Start Workflow                                          | \ud83c\udf10 Request Weather                                     |\n| --------------------------------------------------------- | ------------------------------------------------------ |\n| ![Start](https://img.icons8.com/ios-filled/40/rocket.png) | ![Web](https://img.icons8.com/fluency/40/internet.png) |\n\n#### \ud83e\udde9 Node 1: `Start Workflow`\n\n* **Type**: Trigger node\n* **What it does**: Starts the automation manually or through a schedule.\n* **For Beginners**: Think of this like the **\"play button\"** for your entire workflow. You can trigger it by hand or set it on a timer.\n\n#### \ud83e\udde9 Node 2: `Request/Fetch Weather via Bright Data`\n\n* **Type**: HTTP Request\n* **What it does**: Uses [Bright Data Proxy](https://brightdata.com) to send a request to a weather website and **fetch the full HTML page**, even bypassing bot protections.\n* **For Beginners**: Bright Data acts like a smart assistant that **gets web pages without getting blocked**. It makes web scraping more reliable.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "23e7ddee-8409-4633-a7de-e29ea9face06",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        1020
      ],
      "parameters": {
        "color": 3,
        "width": 420,
        "height": 920,
        "content": "### \ud83d\udfe0 **SECTION 2: Extract & Process Weather Info**\n\n| \ud83e\udde0 Extract HTML                                         | \ud83d\udccb Log to Sheet                                             |\n| ------------------------------------------------------- | ----------------------------------------------------------- |\n| ![HTML](https://img.icons8.com/color/40/html-5--v1.png) | ![Sheet](https://img.icons8.com/color/40/google-sheets.png) |\n\n#### \ud83e\udde9 Node 3: `Extract Weather Info`\n\n* **Type**: HTML Extractor\n* **What it does**: Parses the HTML and **pulls out specific info** like temperature, humidity, and conditions using CSS selectors.\n* **For Beginners**: Imagine this node as a **filter** \u2014 it sifts through a huge webpage and pulls only the useful details you care about (like the current temperature).\n\n#### \ud83e\udde9 Node 4: `Log to Weather Sheet`\n\n* **Type**: Google Sheets Integration\n* **What it does**: Appends the extracted weather info into a Google Sheet \u2014 creating a simple log or database you can review later.\n* **For Beginners**: This is where all the magic gets stored! Each run adds a new row with the latest weather so you can build a **daily weather tracker**.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "aabc6470-727f-4d60-b390-44b52114821a",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        1020
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 240,
        "content": "## I\u2019ll receive a tiny commission if you join Bright Data through this link\u2014thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "4e7b1293-10f1-4bee-a389-42835314731d",
  "connections": {
    "Start Workflow": {
      "main": [
        [
          {
            "node": "RequestFetch Weather via Bright data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Weather Info": {
      "main": [
        [
          {
            "node": "Log to Weather Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RequestFetch Weather via Bright data": {
      "main": [
        [
          {
            "node": "Extract Weather Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automatically collects weather data from multiple sources and compiles it into comprehensive reports. It helps you make informed decisions based on accurate weather forecasts without manually checking multiple weather services.

Source: https://n8n.io/workflows/5226/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This guide will walk you through setting up your n8n workflow. By the end, you'll have a fully automated system for managing your recruitment pipeline.

Google Calendar Trigger, Slack, HTTP Request +4
Data & Sheets

Batch_Call. Uses googleDrive, httpRequest, stopAndError, googleSheets. Event-driven trigger; 28 nodes.

Google Drive, HTTP Request, Stop And Error +1
Data & Sheets

This n8n workflow automatically generates TikTok/Reels-ready talking head videos from scratch. You provide a topic and intention, and the workflow handles everything: scriptwriting, avatar generation,

HTTP Request, N8N Nodes Veed, Google Drive +1
Data & Sheets

This template is only compatible with a self-hosted n8n instance using a community node.

HTTP Request, Google Sheets, Google Drive +2
Data & Sheets

Intelligent Source Routing - Uses a Switch node to route URLs to specialized extractors based on source identifier, enabling custom CSS selectors per publisher for maximum accuracy Universal Fallback

Google Sheets, HTTP Request