{
  "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
          }
        ]
      ]
    }
  }
}