Facility: 001918

Budget Mini Storage

Stale Data Warning: This facility has not been successfully scraped in 26 days (threshold: 3 days). Data may be outdated.
Facility Information active
Facility ID
001918
Name
Budget Mini Storage
URL
https://www.budgetstoragetx.com/storage-units
Address
105 Steves Ln, Wimberley, TX 78676, United States, Wimberley, Texas 78676
Platform
custom_facility_001918
Parser File
src/parsers/custom/facility_001918_parser.py
Last Scraped
2026-03-27 13:48:56.213184
Created
2026-03-14 16:21:53.706708
Updated
2026-03-27 13:48:56.213184
Parser & Healing Diagnosis needs_fix
Parser Status
⚠ Needs Fix
Status Reason
Parser returned 0 units
Last Healing Attempt
Not attempted
Parser Source (src/parsers/custom/facility_001918_parser.py)
"""Parser for Budget Mini Storage (facility 001918).

This facility's website (budgetstoragetx.com) is a Duda-built brochure site
that does not list unit sizes or prices online. The storage-units page says
"Call us for specifications regarding our storage units!" and directs visitors
to call 512-847-1533. The parser returns zero units with a diagnostic warning
so the pipeline can classify this as a no_pricing facility.
"""

from __future__ import annotations

from bs4 import BeautifulSoup

from src.parsers.base import BaseParser, ParseResult, UnitResult


class Facility001918Parser(BaseParser):
    """Extract storage units from Budget Mini Storage (Wimberley, TX).

    The site contains no unit/pricing data -- only marketing copy, contact
    info, and a "call for specifications" message.  This parser confirms
    the absence and returns an appropriate warning so the facility can be
    flagged as no_pricing.
    """

    platform = "custom_facility_001918"

    def parse(self, html: str, url: str = "") -> ParseResult:
        soup = BeautifulSoup(html, "lxml")
        result = ParseResult(platform=self.platform, parser_name=self.__class__.__name__)

        for tag in soup.find_all(["script", "style"]):
            tag.decompose()

        body_text = soup.get_text(separator=" ")
        body_lower = body_text.lower()

        # Confirm this is the expected site
        if "budget storage" not in body_lower and "budgetstoragetx" not in body_lower:
            result.warnings.append(
                "Page content does not match expected facility; HTML may have changed"
            )
            return result

        # Check if pricing has been added since last review
        if "$" in body_text:
            result.warnings.append(
                "Dollar sign detected in page text -- site may now list pricing. "
                "Parser needs update to extract unit data."
            )
            return result

        result.warnings.append(
            "no_pricing: Budget Mini Storage does not publish unit sizes or "
            "prices online. The site directs visitors to call 512-847-1533 "
            "for specifications."
        )
        return result

Scrape Runs (5)

Run #1749 Details

Status
exported
Parser Used
Facility001918Parser
Platform Detected
table_layout
Units Found
0
Stage Reached
exported
Timestamp
2026-03-27 13:48:50.756412
Timing
Stage Duration
Fetch5259ms
Detect14ms
Parse9ms
Export15ms

Snapshot: 001918_20260327T134856Z.html · Show Snapshot · Open in New Tab

No units found in this run.

All Failures for this Facility (5)

parse _WarningAsException scraper no_units_extracted warning Run #N/A | 2026-03-27 13:48:56.193102

No units extracted for 001918

Stack trace
src.reporting.failure_reporter._WarningAsException: No units extracted for 001918
parse _WarningAsException scraper no_units_extracted warning Run #N/A | 2026-03-27 13:48:56.094669

No units extracted for 001918

Stack trace
src.reporting.failure_reporter._WarningAsException: No units extracted for 001918
parse _WarningAsException scraper no_units_extracted warning Run #N/A | 2026-03-23 02:50:38.353373

No units extracted for 001918

Stack trace
src.reporting.failure_reporter._WarningAsException: No units extracted for 001918
parse _WarningAsException scraper no_units_extracted warning Run #N/A | 2026-03-21 18:40:30.796050

No units extracted for 001918

Stack trace
src.reporting.failure_reporter._WarningAsException: No units extracted for 001918
parse _WarningAsException scraper no_units_extracted warning Run #N/A | 2026-03-14 16:23:59.641460

No units extracted for 001918

Stack trace
src.reporting.failure_reporter._WarningAsException: No units extracted for 001918

← Back to dashboard