planningalerts-scrapers / spear

Streamlined Planning through Electronic Applications and Referrals Victoria


SPEAR - Streamlined Planning through Electronic Applications and Referrals, Victoria Scraper

  • Cookie tracking - No
  • Pagnation - yes, start row based via API
  • Javascript - No
  • Clearly defined data within a row - Partial - some data is found via details page

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

To run the scraper

bundle exec ruby scraper.rb

Optionally set MORPH_AUTHORITIES to a comma seperated list of Authorities to examine to speed up development.

Scraper pauses between requests to be nice to the server.

Expected output

Injecting configuration and compiling...
Injecting scraper and running...
Getting list of Authorities...
Authenticating with SPEAR API...
Found 81 authorities...

Getting applications for Alpine Shire Council - Bright Office...
Getting applications for Bass Coast Shire Council...
Saving S262573E - 16 HAZELWOOD ROAD, SAN REMO VIC 3925 ...
Saving S262397S - 45 RUTTLE LANE, INVERLOCH VIC 3996 ...
Saving S262141V - HESLOP ROAD, NORTH WONTHAGGI VIC 3995 ...
Saving S262019P - 7 MARION COURT, INVERLOCH VIC 3996 ...
Saving S261931S - 15 STANLEY ROAD, GRANTVILLE VIC 3984 ...
Getting applications for Baw Baw Shire Council...
Saving S262533H - 409 COPELANDS ROAD, WARRAGUL VIC 3820 ...
Saving S261836C - 65 ROLLO STREET, YARRAGON VIC 3823 ...
Getting applications for Benalla Rural City Council...
WARNING: nothing found between 28 and 60 ago! previous SPEAR record dated 2025-11-26
...

Count  Authority
-----  --------------------------------------
    0  Alpine Shire Council - Bright Office
    5  Bass Coast Shire Council
    2  Baw Baw Shire Council
       Benalla Rural City Council [Not in use since 2025-11-26]
    ...

Finished!

Execution time: 20 to 30 minutes

To run style and coding checks

bundle exec rubocop

To check for security updates

gem install bundler-audit
bundle-audit

Contributors CloCkWeRX henare mlandauer archoo benrfairless ianheggie-oaf jamasalbertastash

Last run failed with status code 1.

Console output of last run

Injecting configuration and compiling... Injecting scraper and running... Getting list of Authorities... Authenticating with SPEAR API... Found 82 authorities... Getting applications for Alpine Shire Council - Bright Office... /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/protocol.rb:229:in `rbuf_fill': Net::ReadTimeout with #<TCPSocket:(closed)> (Net::ReadTimeout) from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/protocol.rb:199:in `readuntil' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/protocol.rb:209:in `readline' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http/response.rb:158:in `read_status_line' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http/response.rb:147:in `read_new' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http.rb:1862:in `block in transport_request' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http.rb:1853:in `catch' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http.rb:1853:in `transport_request' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http.rb:1826:in `request' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http.rb:1819:in `block in request' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http.rb:1238:in `start' from /app/vendor/ruby-3.2.2/lib/ruby/3.2.0/net/http.rb:1817:in `request' from /app/vendor/bundle/ruby/3.2.0/gems/httparty-0.24.2/lib/httparty/request.rb:159:in `perform' from /app/vendor/bundle/ruby/3.2.0/gems/httparty-0.24.2/lib/httparty.rb:621:in `perform_request' from /app/vendor/bundle/ruby/3.2.0/gems/httparty-0.24.2/lib/httparty.rb:547:in `post' from /app/vendor/bundle/ruby/3.2.0/gems/httparty-0.24.2/lib/httparty.rb:658:in `post' from scraper.rb:80:in `block in applications_page' from scraper.rb:22:in `throttle_block' from scraper.rb:79:in `applications_page' from scraper.rb:178:in `block in all_applications' from scraper.rb:176:in `loop' from scraper.rb:176:in `all_applications' from scraper.rb:205:in `block in run' from scraper.rb:199:in `each' from scraper.rb:199:in `run' from scraper.rb:270:in `<main>'

Data

Downloaded 90287 times by slav123 openaustralia dcalde LoveMyData mlandauer DevAppProject jesse-a-reilly repose-lecture tkrikke GitHubMLee TheZepto srsmonty AriesXIX parsaie TornMarketing Manasaanand cankei NicMeg planningalerts-scrapers odnagroup ponynoble Elliehancock Jedwards157 AndreM101 93399339

To download data sign in with GitHub

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

rows 10 / 1406

date_scraped description info_url date_received council_reference address comment_url
2026-02-22
TWO LOT SUBDIVISION
2026-01-25
S262518A
24 MANOEL AVENUE, RESERVOIR VIC 3073
2026-02-23
Other. Dealing Type Major Transport Projects Facilitation Act (BA131049F)
2026-02-17
S263787B
VOLUME 12621 FOLIO 384
2026-02-23
Other. Dealing Type Major Transport Projects Facilitation Act (BA130733W)
2026-02-16
S263654T
12617/204
2026-02-23
RE-SUBDIVIDE LOTS GO7 & 103 TO CREATE LOTS GO7A & 103A
2026-01-26
S262527V
66 WATERLOO ROAD, NORTHCOTE VIC 3070
2026-02-23
Other. Dealing Type Major Transport Projects Facilitation Act (BA129575V)
2026-02-16
S263727S
TP973661L
2026-02-23
Certification of a Plan under the Subdivision Act. Dealing Type Section 22 (Subdivision) (PS932249M) 24 lots
2026-02-18
S260721C
65 SHELLCOT ROAD, KORUMBURRA VIC 3950
2026-02-24
Subdivision of existing clubhouse from the rest of the golf course creating 2 lots
2026-01-27
S262618P
118 GOLF LINKS ROAD, ARARAT VIC 3377
2026-02-24
TWO LOT SUBDIVSION/BOUNDARY REALIGNMENT
2026-01-27
S262539E
3 CRISSANE ROAD, HEIDELBERG WEST VIC 3081
2026-02-24
Certification of a Plan under the Subdivision Act. Dealing Type Section 23 (Removal of Easement) 1 lot
2026-01-27
S262573E
16 HAZELWOOD ROAD, SAN REMO VIC 3925
2026-02-24
2 lot subdivision and provision for 173 agreement to delay works
2026-01-27
S262550H
9 JINDIVICK-NEERIM SOUTH ROAD, NEERIM SOUTH VIC 3831

Statistics

Average successful run time: 16 minutes

Total run time: about 1 month

Total cpu time used: about 10 hours

Total disk space used: 533 KB

History

  • Auto ran revision ed152b12 and failed .
    nothing changed in the database
  • Auto ran revision ed152b12 and completed successfully .
    700 records added, 647 records removed in the database
  • Auto ran revision ed152b12 and completed successfully .
    685 records added, 675 records removed in the database
  • Auto ran revision ed152b12 and completed successfully .
    652 records added, 696 records removed in the database
  • Auto ran revision ed152b12 and completed successfully .
    652 records added, 682 records removed in the database
  • ...
  • Created on morph.io

Show complete history

Scraper code

Ruby

spear / scraper.rb