Facility: 041086
Kmt Storage
- Facility ID
- 041086
- Name
- Kmt Storage
- URL
- https://www.kmtstorage.com/
- Address
- 7505 S 156th St, Omaha, NE 68136, USA, Omaha, Nebraska 68136
- Platform
- custom_facility_041086
- Parser File
- src/parsers/custom/facility_041086_parser.py
- Last Scraped
- 2026-03-27 13:45:04.593241
- Created
- 2026-03-20 23:23:10.660695
- Updated
- 2026-03-27 13:45:04.620591
- Parser Status
- ✓ Working
- Status Reason
- N/A
- Last Healing Attempt
- Not attempted
Parser Source (src/parsers/custom/facility_041086_parser.py)
"""Parser for KMT Storage."""
from __future__ import annotations
import re
from bs4 import BeautifulSoup
from src.parsers.base import BaseParser, ParseResult, UnitResult
class Facility041086Parser(BaseParser):
"""Extract storage units from KMT Storage."""
platform = "custom_facility_041086"
def parse(self, html: str, url: str = "") -> ParseResult:
soup = BeautifulSoup(html, "lxml")
result = ParseResult(platform=self.platform, parser_name=self.__class__.__name__)
# Sizes are mentioned in a paragraph about storage options
# Extract all unique dimension patterns from the page text
text = soup.get_text()
dims = re.findall(r"\b(\d+[xX]\d+)\b", text)
# Filter to reasonable storage unit sizes
seen = set()
for dim in dims:
# Skip duplicates
if dim in seen:
continue
parts = re.split(r"[xX]", dim)
if len(parts) != 2:
continue
try:
w = float(parts[0])
l = float(parts[1])
except ValueError:
continue
# Filter to plausible storage unit sizes (5-50 ft per side)
if 5 <= w <= 50 and 5 <= l <= 50:
seen.add(dim)
unit = UnitResult()
unit.size = dim
wn, ln, sq = self.normalize_size(dim)
if wn is not None:
unit.metadata = {"width": wn, "length": ln, "sqft": sq}
result.units.append(unit)
if not result.units:
result.warnings.append("No units found on page")
return result
Scrape Runs (4)
-
exported Run #16672026-03-27 13:45:01.941925 | 2 units | Facility041086Parser | View Data →
-
exported Run #16662026-03-27 13:45:01.325633 | 2 units | Facility041086Parser | View Data →
-
exported Run #10952026-03-23 02:45:33.500267 | 2 units | Facility041086Parser | View Data →
-
exported Run #6012026-03-21 18:35:46.699289 | 2 units | Facility041086Parser | View Data →
Run #1666 Details
- Status
- exported
- Parser Used
- Facility041086Parser
- Platform Detected
- table_layout
- Units Found
- 2
- Stage Reached
- exported
- Timestamp
- 2026-03-27 13:45:01.325633
Timing
| Stage | Duration |
|---|---|
| Fetch | 2817ms |
| Detect | 19ms |
| Parse | 7ms |
| Export | 20ms |
Snapshot: 041086_20260327T134504Z.html · Show Snapshot · Open in New Tab
Parsed Units (2)
10x20
No price
10x25
No price