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
MacOS
brew install pdftohtmlsudo port install pdftohtmlLinux (Ubuntu/Debian)
Install poppler-utils by running:
sudo apt-get install poppler-utils
bundle exec ruby scraper.rb
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
bundle exec rubocop
gem install bundler-audit
bundle-audit
Set:
DEBUG=1 - to enable debug output from scraperHome >> 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.
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:
Notes:
previous_record to handle this.To download data sign in with GitHub
rows 10 / 678
| 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
|
Average successful run time: 1 minute
Total run time: 9 days
Total cpu time used: about 1 hour
Total disk space used: 367 KB