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... Page-1 Page-2 Page-3 Parsing XML document ... Processing page# 1 Page header: Applications Lodged – 25/09/2026 – 01/10/2026 Group: Development Applications Saving DA26/0703 - 20 Howson Rise, YALLINGUP WA 6282 Saving DA26/0704 - 87 Wisteria Drive, QUINDALUP WA 6281 Saving DA26/0708 - 26 Hadfield Avenue, WEST BUSSELTON WA 6280 Saving DA26/0706 - 189 Lindberg Road, KALGUP WA 6280 Saving DA26/0707 - 39 Dream Retreat, WILYABRUP WA 6280 Saving DA26/0709 - 12/26 West Street, WEST BUSSELTON WA 6280 Saving DA26/0710 - 10 Chapman Crescent, REINSCOURT WA 6280 Saving DA26/0711 - 24 Port Lane, GEOGRAPHE WA 6280 Saving DA26/0712 - Appending continuation to previous_record... Processing page# 2 Page header: Applications Lodged – 25/09/2026 – 01/10/2026 Saving DA26/0713 - 7395 Bussell Highway, METRICUP WA 6280 Saving DA26/0354.01 - 52 Bruce Road, DUNSBOROUGH WA 6281 Group: Building Applications Saving DA26/0714 - 19 Dalmore Close, QUEDJINUP WA 6281 Saving BAC26/0426 - 55 Lindsay Drive, YALYALUP WA 6280 Saving BAC26/0431 - 7/1 St Michaels Parkway, DUNSBOROUGH WA 6281 Saving BAC26/0432 - 452 Geographe Bay Road, QUINDALUP WA 6281 Saving BAC26/0433 - 16 Powell Court, WEST BUSSELTON WA 6280 Saving BAC26/0434 - 5 Simon Street, WEST BUSSELTON WA 6280 Saving BAC26/0435 - 1087 Caves Road, QUINDALUP WA 6281 Saving BAC26/0436 - 6 Diedre Street, BROADWATER WA 6280 Appending continuation to previous_record... Processing page# 3 Page header: Applications Lodged – 25/09/2026 – 01/10/2026 Appending continuation to previous_record... Saving BAC26/0437 - 5 Phyllis Street, BROADWATER WA 6280 Saving BAU26/0440 - Chapman Hill Road, CHAPMAN HILL WA 6280 Saving BAU26/0441 - 24 Lochinvar Place, QUINDALUP WA 6281 Saving BAU26/0442 - 4 Santons Approach, YALYALUP WA 6280 Saving BAU26/0443 - 21 Paperbark Way, VASSE WA 6280 Saving BAU26/0444 - 4 Morgan Street, GEOGRAPHE WA 6280 Saving BAU26/0445 - 60 Whitemoss Drive, VASSE WA 6280 Saving BAU26/0446 - 37 Centurion Way, WEST BUSSELTON WA 6280 Saving BAU26/0447 - 60/502 Bussell Highway, BROADWATER WA 6280 Saving BAU26/0448 - 39 Marseilles Drive, YALYALUP WA 6280 Saving BAU26/0449 - 5 Bourke Way, BROADWATER WA 6280 Appending continuation to previous_record... Saving BAU26/0450 - 3 Sierra Crescent, VASSE WA 6280 Retrieving https://www.busselton.wa.gov.au/documents/13677/applications-lodged-2025 ... Running pdftohtml to convert pdf to xml pages... 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 Page-149 Page-150 Page-151 Page-152 Page-153 Page-154 Page-155 Page-156 Page-157 Page-158 Page-159 Page-160 Page-161 Page-162 Page-163 Page-164 Page-165 Page-166 Page-167 Page-168 Page-169 Page-170 Page-171 Page-172 Page-173 Page-174 Page-175 Page-176 Page-177 Page-178 Page-179 Page-180 Page-181 Page-182 Page-183 Page-184 Page-185 Page-186 Page-187 Page-188 Page-189 Page-190 Page-191 Page-192 Page-193 Page-194 Page-195 Page-196 Page-197 Page-198 Page-199 Page-200 Page-201 Page-202 Page-203 Page-204 Page-205 Page-206 Page-207 Page-208 Page-209 Page-210 Page-211 Page-212 Page-213 Page-214 Page-215 Page-216 Page-217 Page-218 Page-219 Page-220 Page-221 Page-222 Page-223 Page-224 Page-225 Page-226 Page-227 Parsing XML document ... Processing page# 1 Page header: Applications Lodged – 19/12/2025 – 01/01/2026 Finished! Processed 31 records.

Data

Downloaded 5738 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 (266 KB) Use the API

rows 10 / 755

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: 403 KB

History

  • Auto ran revision bfcc5622 and completed successfully .
    31 records added, 31 records removed in the database
  • Auto ran revision bfcc5622 and completed successfully .
    31 records added, 31 records removed in the database
  • Auto ran revision bfcc5622 and completed successfully .
    31 records added, 31 records removed in the database
  • Auto ran revision bfcc5622 and completed successfully .
    31 records added, 31 records removed in the database
  • Auto ran revision bfcc5622 and completed successfully .
    31 records added, 31 records removed in the database
  • ...
  • Created on morph.io

Show complete history