Facility: 093362
Palm Tree Storage
- Facility ID
- 093362
- Name
- Palm Tree Storage
- URL
- https://www.palmtreestorage.com/
- Address
- 2700 Fm 56, Glen Rose, TX 76043, USA, Glen Rose, Texas 76043
- Platform
- custom_facility_093362
- Parser File
- src/parsers/custom/facility_093362_parser.py
- Last Scraped
- 2026-03-27 13:46:16.280730
- Created
- 2026-03-20 23:23:10.660695
- Updated
- 2026-03-27 13:46:16.315796
- Parser Status
- ✓ Working
- Status Reason
- N/A
- Last Healing Attempt
- Not attempted
Parser Source (src/parsers/custom/facility_093362_parser.py)
"""Parser for Palm Tree Storage."""
from __future__ import annotations
import re
from bs4 import BeautifulSoup
from src.parsers.base import BaseParser, ParseResult, UnitResult
class Facility093362Parser(BaseParser):
"""Extract storage units from Palm Tree Storage."""
platform = "custom_facility_093362"
def parse(self, html: str, url: str = "") -> ParseResult:
soup = BeautifulSoup(html, "lxml")
result = ParseResult(platform=self.platform, parser_name=self.__class__.__name__)
# Unit sizes are in h4 elements with class x-el-h4
# Sizes like "5 X 10", "10 X 10", "10 X 15", "10 X 20", "10 X 30"
size_pattern = re.compile(r"\d+\s*[xX]\s*\d+")
seen_sizes = set()
for h4 in soup.select("h4.x-el-h4"):
text = h4.get_text(strip=True)
if size_pattern.search(text):
normalized = re.sub(r"\s+", " ", text).strip()
if normalized not in seen_sizes:
seen_sizes.add(normalized)
unit = UnitResult()
unit.size = normalized
unit.description = normalized if " " in normalized and len(normalized) > 6 else None
w, ln, sq = self.normalize_size(normalized)
if w is not None:
unit.metadata = {"width": w, "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 #16892026-03-27 13:46:14.179880 | 6 units | Facility093362Parser | View Data →
-
exported Run #16882026-03-27 13:46:13.547817 | 6 units | Facility093362Parser | View Data →
-
exported Run #11072026-03-23 02:47:44.299897 | 6 units | Facility093362Parser | View Data →
-
exported Run #6122026-03-21 18:37:23.695400 | 6 units | Facility093362Parser | View Data →
Run #1107 Details
- Status
- exported
- Parser Used
- Facility093362Parser
- Platform Detected
- table_layout
- Units Found
- 6
- Stage Reached
- exported
- Timestamp
- 2026-03-23 02:47:44.299897
Timing
| Stage | Duration |
|---|---|
| Fetch | 3398ms |
| Detect | 50ms |
| Parse | 18ms |
| Export | 6ms |
Snapshot: 093362_20260323T024747Z.html · Show Snapshot · Open in New Tab
Parsed Units (6)
5 X 10
No price
10 X 10
No price
10 X 15
No price
10 X 20
No price
10 X 30
No price
12 X 40 Covered RV Parking (Glen Rose)
No price