Skip to main content

error-handling Scenario 5 — Batch Process 100 URLs with Individual Error Handling

Written by RTILA X Engineering Team

Advanced ~10 min
Prerequisites: error-handling/3 error-handling/4

What You'll Learn

Implement comprehensive retry logic

Real-World Use Case

Building robust enterprise-level scrapers

LIVE DEMO

Batch URL Processing

URLStatusData
/scenarios/basic-navigation/1 Success Page 1 title
/scenarios/basic-navigation/2 Success Page 2 title
/scenarios/basic-navigation/3 Failed
/scenarios/basic-navigation/4 Success Page 4 title
/scenarios/basic-navigation/5 Success Page 5 title
EXPECTED OUTPUT

RTILA X PROJECT JSON

    {
  "name": "Batch_Process_URLs_With_Errors",
  "settings": {
    "urls": [
      "https://learn.rtila.com/scenarios/error-handling/5"
    ],
    "headless": false,
    "navigation_timeout": 30000,
    "max_concurrent_workers": 1,
    "humanoidEnabled": true,
    "humanoidSensitivity": "medium",
    "variables": [
      {
        "name": "url_list",
        "is_list": true,
        "value": [
          "https://learn.rtila.com/scenarios/basic-navigation/1",
          "https://learn.rtila.com/scenarios/basic-navigation/2",
          "https://learn.rtila.com/scenarios/basic-navigation/3",
          "https://learn.rtila.com/scenarios/basic-navigation/4",
          "https://learn.rtila.com/scenarios/basic-navigation/5"
        ]
      }
    ]
  },
  "datasets": {
    "batch_results": {
      "item_selector": "css=title",
      "properties": [
        {
          "name": "title",
          "type": "text",
          "selector": "css=title"
        }
      ]
    }
  },
  "commands": [
    {
      "command": "goto",
      "params": {
        "url": "https://learn.rtila.com/scenarios/error-handling/5"
      }
    },
    {
      "command": "for_each",
      "params": {
        "source_type": "variable",
        "variable": "url_list",
        "as": "url",
        "do": [
          {
            "command": "try_catch",
            "params": {
              "try": [
                {
                  "command": "goto",
                  "params": {
                    "url": "${url}"
                  }
                },
                {
                  "command": "wait_for_selector",
                  "params": {
                    "selector": "css=title"
                  }
                },
                {
                  "command": "extract_data",
                  "params": {
                    "dataset": "batch_results"
                  }
                }
              ],
              "catch": [
                {
                  "command": "comment",
                  "params": {
                    "text": "Log failed URL and continue"
                  }
                }
              ]
            }
          }
        ]
      }
    }
  ]
}
  

RTILA X Concepts

Batch processing wraps each URL attempt in a try_catch inside a for_each loop. Failures are logged and the loop continues with the next URL.

Did you complete this scenario?

Ready to run this automation?

Copy the project JSON above, open RTILA X, create a new project, and paste it.

This scenario covers 2 RTILA X commands and is referenced in 2 learning articles.

Continue Learning

Was this helpful?