planningalerts-scrapers / city_of_busselton_development_applications

City of Busselton Development Applications


City of Busselton Development Applications (WA)

This is a scraper that runs on Morph. To get started see the documentation

Add any issues to https://github.com/planningalerts-scrapers/issues/issues

Development Requirements

Install pdftohtml

MacOS

  • Homebrew: Run brew install pdftohtml
  • MacPorts: Run sudo port install pdftohtml

Linux (Ubuntu/Debian)

Install poppler-utils by running:

sudo apt-get install poppler-utils

To run the scraper

bundle exec ruby scraper.rb

Expected output

Retrieving https://www.busselton.wa.gov.au/documents/13944/applications-lodged-2026 ...
Running pdftohtml to convert pdf to xml pages...
Page-1
...
Page-46
Parsing XML document ...
Processing page# 1
Page header: Applications Lodged – 13/03/2026 – 19/03/2026
Group: Development Applications
Saving DA26/0185 - Lot 75 No 20 Old Mill Grove QUINDALUP  WA  6281
...
Saving DA26/0195 - Lot 45 No 21 Carline Loop GEOGRAPHE  WA  6280
Processing page# 2
...
Processing page# 17
Page header: Applications Lodged – 13/02/2026 – 19/02/2026
Finished! Processed 178 records.

Execution time ~ 10 seconds

To run style and coding checks

bundle exec rubocop

To check for security updates

gem install bundler-audit
bundle-audit

Development

Set:

  • DEBUG=1 - to enable debug output from scraper

Data source

Home >> Plan and Build >> Applications Issued, Determined and Lodged

"Applications Lodged" links for the current year and previous year are links to PDFs covering the whole year. The scraper fetches the first (current year) PDF and continues to the second (prior year) PDF only if it has not yet found a date range ending more than 30 days ago — this naturally handles the January overlap without any special date logic in ApplicationsLodgedPage.

Format: Each PDF is a concatenation of weekly "Applications Lodged – DD/MM/YYYY – DD/MM/YYYY" documents, ordered from the most recent week to the earliest week for the year. The date range heading repeats on every page of each weekly section.

Since late August 2026, newly generated weekly sections use a new template: the heading reads "Applications Lodged – DD/MM/YYYY to DD/MM/YYYY" (the word "to" as the range separator, with single-digit days possible) and may be split across two adjacent text nodes in the converted XML. Older sections in the same PDF keep the original single-node en-dash format, so the scraper accepts both.

Each weekly section lists one or more groups (eg "Development Applications" or "Building Applications"), each preceded by a bold group heading and a table with columns:

  • Application Number
  • Description
  • Primary Property Address
  • Date Application Received
  • Date Deemed Complete (later Development Applications only — ignored by scraper)

Notes:

  • There is a fixed header and footer region; the data table/s and group headings is contained between them, and rows are split across pages when they do not fit.
  • Table headings are not repeated on a continuation of a table onto following pages;
  • Group headings do not force a page break (a new table starts below)
  • Table headings are sometimes split mid-word, eg "Applicatio" on one line and "n Number" on the next line. A list of known headings is maintained to handle this to determine if a space should be inserted between lines or not.
    • This implies that column alignment may vary
  • Table headings may change with the addition of "Date Deemed Complete", though this was not seen in the last 30 days
  • Cell contents are normally aligned to the bottom of the row.
  • When a row is split across pages, the first page holds as much of each cell that fits, with the remaining cell content appearing on the following page. The scraper uses previous_record to handle this.
  • html2xml may merge text from two columns, which may cause classification issues, we handle this by
    • moving the 2nd word from council reference to address if present, eg: "BAC26/0109 Certified:"
    • moving dates at the end of addresses to datereceived and ignoring multiple dates for datereceived

Contributors gooch equivalentideas CloCkWeRX mlandauer benrfairless ianheggie-oaf

Last run completed successfully .

Console output of last run

Injecting configuration and compiling... Injecting scraper and running... Retrieving https://www.busselton.wa.gov.au/documents/13985/applications-lodged ... Running pdftohtml to convert pdf to xml pages... Syntax Warning: Bad annotation destination Page-1 Page-2 Page-3 Page-4 Page-5 Page-6 Page-7 Page-8 Page-9 Page-10 Page-11 Page-12 Page-13 Page-14 Page-15 Page-16 Page-17 Page-18 Page-19 Page-20 Page-21 Page-22 Page-23 Page-24 Page-25 Page-26 Page-27 Page-28 Page-29 Page-30 Page-31 Page-32 Page-33 Page-34 Page-35 Page-36 Page-37 Page-38 Page-39 Page-40 Page-41 Page-42 Page-43 Page-44 Page-45 Page-46 Page-47 Page-48 Page-49 Page-50 Page-51 Page-52 Page-53 Page-54 Page-55 Page-56 Page-57 Page-58 Page-59 Page-60 Page-61 Page-62 Page-63 Page-64 Page-65 Page-66 Page-67 Page-68 Page-69 Page-70 Page-71 Page-72 Page-73 Page-74 Page-75 Page-76 Page-77 Page-78 Page-79 Page-80 Page-81 Page-82 Page-83 Page-84 Page-85 Page-86 Page-87 Page-88 Page-89 Page-90 Page-91 Page-92 Page-93 Page-94 Page-95 Page-96 Page-97 Page-98 Page-99 Page-100 Page-101 Page-102 Page-103 Page-104 Page-105 Page-106 Page-107 Page-108 Page-109 Page-110 Page-111 Page-112 Page-113 Page-114 Page-115 Page-116 Page-117 Page-118 Page-119 Page-120 Page-121 Page-122 Page-123 Page-124 Page-125 Page-126 Page-127 Page-128 Page-129 Page-130 Page-131 Page-132 Page-133 Page-134 Page-135 Page-136 Page-137 Page-138 Page-139 Page-140 Page-141 Page-142 Page-143 Page-144 Page-145 Page-146 Page-147 Page-148 Parsing XML document ... Processing page# 1 Page header: Applications Lodged – 28/08/2026 to 3/09/2026 Group: Development Applications Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 2 Page header: Applications Lodged – 28/08/2026 to 3/09/2026 Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 3 Page header: Applications Lodged – 28/08/2026 to 3/09/2026 Group: Building Applications Saving DA26/0643 - Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 4 Page header: Applications Lodged – 28/08/2026 to 3/09/2026 Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 5 Page header: Applications Lodged – 28/08/2026 to 3/09/2026 Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 6 Page header: Applications Lodged – 21/08/2026 – 27/08/2026 Group: Development Applications Saving BAC26/0381 - Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 7 Page header: Applications Lodged – 21/08/2026 – 27/08/2026 Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 8 Page header: Applications Lodged – 21/08/2026 – 27/08/2026 Group: Building Applications Saving DA26/0619 - Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 9 Page header: Applications Lodged – 21/08/2026 – 27/08/2026 Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 10 Page header: Applications Lodged – 21/08/2026 – 27/08/2026 Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Appending continuation to previous_record... Processing page# 11 Page header: Applications Lodged – 14/08/2026 – 20/08/2026 Group: Development Applications Saving BAC26/0365 - Saving DA26/0608 - 5A Reynolds Street, WEST BUSSELTON WA 6280 Saving DA26/0609 - 15 Pioneer Cove, BUSSELTON WA 6280 Saving DA26/0599 - 34 Henry Willmott Drive, GEOGRAPHE WA 6280 Saving DA26/0600 - 316 Moses Rock Road, WILYABRUP WA 6280 Saving DA26/0601 - 88 Kinross Loop, QUINDALUP WA 6281 Saving DA26/0602 - 13A Freebridge Place, DUNSBOROUGH WA 6281 Saving DA26/0603 - 2/204 Geographe Bay Road, QUINDALUP WA 6281 Saving DA26/0604 - 1/3 Congressional Drive, DUNSBOROUGH WA 6281 Saving DA26/0605 - 39 Hammond Road, YALLINGUP WA 6282 Processing page# 12 Page header: Applications Lodged – 14/08/2026 – 20/08/2026 Saving DA26/0606 - 15-19 Queen Street, BUSSELTON WA 6280 Saving DA26/0607 - 10 Whatman Street, QUINDALUP WA 6281 Saving DA26/0610 - 15 Neville Street, BUSSELTON WA 6280 Saving DA26/0611 - 55 Martina Drive, DUNSBOROUGH WA 6281 Saving DA23/0391.01 - 1/81 Fairbairn Road, BUSSELTON WA 6280 Saving DA26/0613 - 409 Bussell Highway, BROADWATER WA 6280 Saving DA25/0335.01 - 253 Dryandra Avenue, YALLINGUP WA 6282 Saving DA24/0851.01 - Clubhouse Drive, DUNSBOROUGH WA 6281 Saving DA26/0614 - 19 Eagle Bay-Meelup Road, EAGLE BAY WA 6281 Saving DA26/0612 - 18 Patton Terrace, QUINDALUP WA 6281 Saving DA26/0615 - 39 Forest Court, REINSCOURT WA 6280 Processing page# 13 Page header: Applications Lodged – 14/08/2026 – 20/08/2026 Group: Building Applications Saving DA26/0616 - 327 Sues Road, YALYALUP WA 6280 Saving BAC26/0358 - 291 Jamisons Road, CHAPMAN HILL WA 6280 Saving BAC26/0359 - 50 Howson Rise, YALLINGUP WA 6282 Saving BAC26/0360 - 58 Adelaide Street, BUSSELTON WA 6280 Saving BAC26/0361 - 33 Windlemere Drive, DUNSBOROUGH WA 6281 Saving BAC26/0362 - 20 Harnett Street, BROADWATER WA 6280 Saving BAC26/0363 - 58 Adelaide Street, BUSSELTON WA 6280 Saving BAC26/0364 - 2 Commerce Road, VASSE WA 6280 Saving BAC26/0365 - 10A Kempston Place, BROADWATER WA 6280 Saving BAU26/0376 - 13 Quandong Close, VASSE WA 6280 Saving BAU26/0377 - 36 Dorset Street, WEST BUSSELTON WA 6280 Saving BAU26/0378 - 12 Donald Way, GEOGRAPHE WA 6280 Saving BAU26/0379 - 2 Kelly Drive, WEST BUSSELTON WA 6280 Processing page# 14 Page header: Applications Lodged – 14/08/2026 – 20/08/2026 Appending continuation to previous_record... Saving BAU26/0380 - 2/880 Geographe Bay Road, WEST BUSSELTON WA 6280 Processing page# 15 Page header: Applications Lodged – 07/08/2026 – 13/08/2026 Group: Development Applications Saving BAU26/0381 - 24 Amberley Loop, DUNSBOROUGH WA 6281 Saving DA26/0590 - 48 Currawong Drive, BROADWATER WA 6280 Saving DA26/0592 - 2 Resort Drive, DUNSBOROUGH WA 6281 Saving DA26/0587 - 58 Wardanup Crescent, YALLINGUP WA 6282 Saving DA24/0428.0 - 8 Coomidup Boulevard, VASSE WA 6280 Saving DA26/0589 - 16 Tracey Road, YALYALUP WA 6280 Saving DA26/0591 - 24 Bay View Crescent, DUNSBOROUGH WA 6281 Saving DA26/0595 - 3/177 Duke Street, BUSSELTON WA 6280 Saving DA26/0129.0 - 43 MacLaren Drive, YALLINGUP WA 6282 Saving DA26/0596 - 85 Balmoral Drive, QUINDALUP WA 6281 Saving DA26/0594 - 15 Congressional Drive, DUNSBOROUGH WA 6281 Processing page# 16 Page header: Applications Lodged – 07/08/2026 – 13/08/2026 Saving DA26/0593 - 21 Fairbairn Road, BUSSELTON WA 6280 Saving DA24/0110.0 - 7 Gunyulgup Valley Drive, YALLINGUP WA 6282 Saving DA26/0598 - 24 Chine Place, GEOGRAPHE WA 6280 Group: Building Applications Saving DA26/0597 - 5 Neville Street, BUSSELTON WA 6280 Saving BAC26/0346 - DUNSBOROUGH WA 6281 Saving BAC26/0347 - 80 Nukklgup Loop, YALLINGUP WA 6282 Saving BAC26/0348 - 41 Hideaway Loop, VASSE WA 6280 Saving BAC26/0349 - 137 Yelverton Road, YELVERTON WA 6280 Appending continuation to previous_record... Saving BAC26/0350 - 42 Burwood Lane, YALLINGUP SIDING WA 6282 Saving BAC26/0351 - 62 Pardalote Road, VASSE WA 6280 Saving BAC26/0352 - 78 Bay View Crescent, DUNSBOROUGH WA 6281 Processing page# 17 Page header: Applications Lodged – 07/08/2026 – 13/08/2026 Saving BAC26/0353 - 142 Norwood Pass, VASSE WA 6280 Saving BAC26/0354 - 270 Wyadup Road, YALLINGUP WA 6282 Saving BAC26/0355 - 31 Yellowtail Drive, VASSE WA 6280 Saving BAC26/0356 - 6 Carter Street, WEST BUSSELTON WA 6280 Saving BAC26/0357 - 1842 Caves Road, NATURALISTE WA 6281 Saving BAC26/0358 - 291 Jamisons Road, CHAPMAN HILL WA 6280 Saving BAC26/0359 - 50 Howson Rise, YALLINGUP WA 6282 Saving BAC26/0360 - 58 Adelaide Street, BUSSELTON WA 6280 Saving BAC26/0361 - 33 Windlemere Drive, DUNSBOROUGH WA 6281 Saving BAC26/0362 - 20 Harnett Street, BROADWATER WA 6280 Saving BAU26/0362 - 67 Threefin Circuit, VASSE WA 6280 Saving BAU26/0363 - 31 Golding Ramble, YALYALUP WA 6280 Saving BAU26/0364 - 89 New River Ramble, WEST BUSSELTON WA 6280 Saving BAU26/0365 - 12 Oban Lane, YALYALUP WA 6280 Saving BAU26/0366 - 13 Quail Cove, WEST BUSSELTON WA 6280 Processing page# 18 Page header: Applications Lodged – 07/08/2026 – 13/08/2026 Appending continuation to previous_record... Saving BAU26/0367 - 162 Kent Street, BUSSELTON WA 6280 Saving BAU26/0368 - 6 Pinta Street, VASSE WA 6280 Saving BAU26/0369 - 27 Jones Way, ABBEY WA 6280 Saving BAU26/0370 - 768 Queen Elizabeth Avenue, AMBERGATE WA 6280 Saving BAU26/0371 - 2/169 Duke Street, BUSSELTON WA 6280 Saving BAU26/0372 - 920 Geographe Bay Road, GEOGRAPHE WA 6280 Saving BAU26/0373 - 193 Sheoak Drive, YALLINGUP WA 6282 Saving BAU26/0374 - 21 Tranquil Lane, QUINDALUP WA 6281 Processing page# 19 Page header: Applications Lodged – 24/07/2026 – 06/08/2026 Finished! Processed 84 records.

Data

Downloaded 5693 times by openaustralia LoveMyData mlandauer jesse-a-reilly dcalde tkrikke repose-lecture gooch TheZepto 538digital Jedwards157 Joel-Tan_valocity

To download data sign in with GitHub

Download table (as CSV) Download SQLite database (245 KB) Use the API

rows 10 / 680

council_reference address description info_url comment_url date_scraped on_notice_to date_received on_notice_from
DA16/0639
1301 Wildwood Road, Yallingup, WA
Use Not Listed Tavern (Micro Brewery)
mailto:city@busselton.wa.gov.au?subject=DA16/0639
2016-09-16
2016-09-21
DA16/0618
44 Bell Drive, Broadwater, WA
Multiple Dwellings (16 Multiple Dwellings)
mailto:city@busselton.wa.gov.au?subject=DA16/0618
2016-09-16
2016-09-21
DA16/0606
190 Bussell Highway, West Busselton, WA
Medical Centre
mailto:city@busselton.wa.gov.au?subject=DA16/0606
2016-09-16
2016-09-28
DA16/0696
216 Fish Road, Sabina River, WA
Extractive Industry (Sand) --
mailto:city@busselton.wa.gov.au?subject=DA16/0696
2016-10-03
2016-10-26
DA16/0723
88 Genoli Road, Wonnerup, WA
Animal Establishment (Horse and Working Dog Shows)
mailto:city@busselton.wa.gov.au?subject=DA16/0723
2016-10-03
2016-10-26
DA16/0742
1086 Kaloorup Road, Kaloorup, WA
Extractive Industry (Gravel)
mailto:city@busselton.wa.gov.au?subject=DA16/0742
2016-10-06
2016-10-26
DA16/0699
130 and Lot 237 Ludlow Park Road, Ludlow, WA
Extractive Industry and Crushing Facility (Limestone)
mailto:city@busselton.wa.gov.au?subject=DA16/0699
2016-10-07
2016-11-02
AMD21/0022
182 Geographe Bay Road QUINDALUP WA 6281
SCHEME AMENDMENT NO. 22 - RECODING LOT 41 GEOGRAPHE BAY ROAD QUINDALUP AND AMENDING SCHEDULE 4
2016-11-23
2016-06-20
2016-10-12
AMD21/0010
City of Busselton Administration Building 2 Southern Drive BUSSELTON WA 6280
Text Amendment - Introduce a requirement to obtain development approval for development comprising Re-purposed dwellings and Second-hand dwellings.
2016-11-23
2015-04-23
2016-10-12
AMD21/0023
Layman Road GEOGRAPHE WA 6280
SCHEME AMENDMENT NO. 23 - REZONING OF LOT9507 LAYMAN ROAD GEOGRAPHE
2016-11-16
2016-07-08
2016-10-05

Statistics

Average successful run time: 1 minute

Total run time: 9 days

Total cpu time used: about 1 hour

Total disk space used: 382 KB

History

  • Auto ran revision bfcc5622 and completed successfully .
    77 records added, 77 records removed in the database
  • Manually ran revision bfcc5622 and completed successfully .
    77 records added, 75 records removed in the database
  • Auto ran revision 6a0f0cfd and failed .
    nothing changed in the database
  • Auto ran revision 6a0f0cfd and failed .
    nothing changed in the database
  • Auto ran revision 22dbb4ca and failed .
    nothing changed in the database
  • ...
  • Created on morph.io

Show complete history