Facility: 012147

Orr Self 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
012147
Name
Orr Self Storage
URL
http://www.orrstorage.com/
Address
1705 Claxton Dairy Rd, Dublin, GA 31021, USA, Dublin, Georgia 31021
Platform
custom_facility_012147
Parser File
src/parsers/custom/facility_012147_parser.py
Last Scraped
2026-03-27 13:40:35.275745
Created
2026-03-23 02:35:08.816820
Updated
2026-03-27 13:40:35.275745
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_012147_parser.py)
"""Parser for Orr Self Storage (www.orrstorage.com).

This is a no_pricing site. It is a Wix-built brochure page that advertises
storage features (24-hour access, video surveillance, gated complex) but does
not list specific unit dimensions or prices. The "BOOK A UNIT TODAY" and
"RESERVATIONS" links redirect to an external StorageLoft system at
smdservers.net where pricing may be available, but that content is not part
of this facility's scraped HTML.
"""

from __future__ import annotations

from bs4 import BeautifulSoup

from src.parsers.base import BaseParser, ParseResult


class Facility012147Parser(BaseParser):
    """Extract storage units from Orr Self Storage.

    The website does not publish unit sizes or pricing in HTML. The homepage
    contains only marketing copy, contact information, and links to an
    external reservation system (smdservers.net). This parser returns 0 units
    with an explanatory warning so the pipeline can classify this as a
    no_pricing facility.
    """

    platform = "custom_facility_012147"

    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=" ").lower()

        # Confirm this is the correct site
        if "orr self storage" not in body_text and "orrstorage" not in body_text:
            result.warnings.append("Page does not appear to be Orr Self Storage")
            return result

        result.warnings.append(
            "no_pricing: Orr Self Storage does not publish unit sizes or "
            "prices on its website. Reservations are handled through an "
            "external StorageLoft system at smdservers.net. Contact: "
            "478-272-0915."
        )
        return result

Scrape Runs (3)

Run #1551 Details

Status
exported
Parser Used
Facility012147Parser
Platform Detected
table_layout
Units Found
0
Stage Reached
exported
Timestamp
2026-03-27 13:40:33.044697
Timing
Stage Duration
Fetch2118ms
Detect22ms
Parse11ms
Export17ms

Snapshot: 012147_20260327T134035Z.html · Show Snapshot · Open in New Tab

No units found in this run.

All Failures for this Facility (3)

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

No units extracted for 012147

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

No units extracted for 012147

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

No units extracted for 012147

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

← Back to dashboard