If you have ever needed to pull rental listings from a university housing portal, you already know the problem. The data is right there on the page, but copying it manually across dozens of pages is tedious, and writing a custom scraper for an ASP.NET-based site with dynamic IDs is its own kind of headache.
This tutorial shows how to extract property listings from MyOffCampus, Ohio State University's off-campus housing search tool, using the Minexa.ai Chrome extension — no code required to set it up.
What you will extract
Each listing on MyOffCampus includes:
- Street address
- Number of bedrooms and bathrooms
- Price range (per month)
- A/C type and pet policy
- Photo count and image link
- A direct link to the full property detail page
The portal paginates results and uses ASP.NET control IDs in the DOM, which makes traditional selector-based scrapers brittle. Minexa handles this automatically.
Step-by-step walkthrough
1. Install the extension and open the target page
Install Minexa.ai from the Chrome Web Store, then navigate to:
https://offcampus.osu.edu/myoffcampus/search-housing.aspx
2. Open the Minexa extension popup
Click the extension icon. You will see a prompt asking you to confirm you are on the right page. Click 'I'm on the right page'.
3. Pagination is detected automatically
Minexa scans the page and identifies the pagination pattern. For MyOffCampus, it detects the next-page navigation and lists the pages it will follow. Click Continue.
4. Choose list-only or list + detail pages
You can scrape just the listing cards, or follow each property link and extract the full detail page too. For this walkthrough, list-only is enough to get address, price, bedrooms, and amenities.
5. Start the scraping job
Select the simple scraping scenario and confirm. Minexa automatically highlights the repeating container that holds all listing cards.
6. Review extracted columns
After clicking 'Create scraper', you can browse all extracted data points using the next/prev navigation. No field selection needed — Minexa surfaces everything it found.
7. Run the job and export
Export to Excel, Google Sheets, or JSON when the run finishes.
Video tutorial
Sample output
Here is what two rows from the extracted JSON look like after cleaning up the prefixes:
[
{
"street_address": "399 East 13th Avenue",
"bedrooms": "5 beds",
"bathroom_description": "1 full, 0 half baths",
"price_range": "$445.00 - $550.00",
"air_conditioning_type": "Central A/C, Pets Allowed",
"photo_count": "16 Photos",
"property_link": "search-housing.aspx?property=20227"
},
{
"street_address": "2233 Neil Avenue Unit I",
"bedrooms": "1 bed",
"bathroom_description": "1 full, 0 half baths",
"price_range": "$450.00 - $600.00",
"air_conditioning_type": "Window A/C",
"photo_count": "9 Photos",
"property_link": "search-housing.aspx?property=17341"
}
]
Each row maps cleanly to one listing card. The property_link field gives you the path to the detail page if you want to run a second pass for full descriptions.
Working with the data in Python
import json
with open('osu_listings.json') as f:
listings = json.load(f)
for item in listings:
addr = item.get('street_address')
price = item.get('price_range')
beds = item.get('bedrooms')
print(f"{addr} | {beds} | {price}")
Output:
399 East 13th Avenue | 5 beds | $445.00 - $550.00
2233 Neil Avenue Unit I | 1 bed | $450.00 - $600.00
Scheduling repeat runs
Once the scraper is configured, you can schedule it to run daily or weekly directly from the Minexa interface. This is useful if you want to track which listings appear, disappear, or change price over time without triggering anything manually.
The full setup for this scraper takes under five minutes. Once it is trained on the MyOffCampus listing structure, every future run starts immediately without repeating any configuration steps.
Get the Minexa.ai Chrome extension and run your first extraction today.










Top comments (0)