This script scrapes and stores the availability of timeslots for Car Driving Test at all RTA Serivce NSW centres in the state.

Overview

This script scrapes and stores the availability of timeslots for Car Driving Test at all RTA Serivce NSW centres in the state.

Dependencies

  1. Account with RTA NSW where you can have passed knowledge test, hazard test etc.
  2. chrome driver executable in your PATH variable
  3. Python3 and Selenium installed
  4. Optional jq and R for creating reports from results

Usage

Clone the repo

git clone https://github.com/sbmkvp/rta_booking_information

Set your working directory to the repo

cd rta_booking_information

Copy and modify the sample settings file

cp settings_sample.json settings.json

Change the username, password, if you already have a booking and the specific centres you are looking for. If you leave the centres null all centres will be searched.

Run the script (for bash based systems e.g. mac/linux/WSL)

./scrape_availability.py

Run the script (for windows)

python3 scrape_availability.py

The results should be saved in the results folder. You can convert these to csv report by using the second script (requires jq,bash and R with tidyverse)

./create_status_report result_file.json

This has been tested to work in my system but there are numerous edge cases where this might fail.

  • Your account status is different to mine
  • RTA changes website.
  • RTA IT team blocks your IP
  • The website is very slow

If the website is slow and the script fails at selecting the driving test on a new booking try increasing the wait_timer.

Disclaimer:

  • For personal use only.
  • Dont break the law or cause disruption using this.
  • Using automated scripts irresponsibily can cause booking loss, disruption of services etc. be careful and know what you are doing.
  • You are responsible for your actions.
Comments
  • How to run get_all_locations.sh in Windows?

    How to run get_all_locations.sh in Windows?

    I've gotten it all mostly running now, I can scrape data on single location using srape_availability.py, but how would I go about running the sh script in Windows?

    documentation 
    opened by arvz 3
  • Remove R dependency

    Remove R dependency

    Create status report could be done through Pandas in python, it would be great if the entire thing is done through Python only since most software people may not have R installed and there are a lot of dependencies work to be done just to configure R correctly (tidyverse for R compiled 15 minutes on my machine :)

    enhancement 
    opened by hongfeiyang 3
  • Gracefully exit chromedriver instances.

    Gracefully exit chromedriver instances.

    On error, the script leaves a bunch of chromedriver instances which can hog up the system resources. This needs to be fixed for the script be able to run without intervention on a machine at regular intervals.

    bug 
    opened by sbmkvp 2
  • fix: python3 path may not be correctly configured

    fix: python3 path may not be correctly configured

    added an option in settings.json for user to specify python executable binary location

    Some systems may have python as executable name while other may have python3 or some other specific paths of python binary like /usr/bin/python3

    opened by hongfeiyang 0
  • Add Driver Knowledge Test (DKT)

    Add Driver Knowledge Test (DKT)

    Would be awesome if you could add the Driver Knowledge Test (DKT) to the daily upload too. I've tried to make the changes but unable to test as RTA keeps blocking my IP.

    Should hopefully be simple to do. A few changes to index.html to link to the DKT bookings page and then an additional parameter to scrape_availability.py to be able to select the DTK, KC instead of DC.

    driver.find_element(By.XPATH,"//fieldset[@id='KC']/span[contains(@class, 'rms_testItemResult')]").click()

    enhancement 
    opened by vmlrodrigues 1
  • Only one week data is captured.

    Only one week data is captured.

    Only one weeks worth of booking availability is captured. In case of only one slot available in the earliest week, this is the only slot shown as available even though more times are available in the next week.

    The script should move the time forward to check if any more slots are available

    bug 
    opened by sbmkvp 0
  • What about building a front end app and store data locally

    What about building a front end app and store data locally

    https://user-images.githubusercontent.com/19302128/154591816-4c84d365-2e58-4a54-a700-2f40ebc16141.mov

    I built a macOS app with this script, it has a scheduler and sends notifications if it finds your desired availability. Instead of storing data through repo commits, we should give user the opportunity to store data on their local machine so they won't have to push to a repo with data update commits :) Also it would be better if we build some script to reschedule a test so it is truly autonomous :) what do you think?

    enhancement 
    opened by hongfeiyang 4
  • Automatically update the centres.json file

    Automatically update the centres.json file

    The centers.json file is update manually. We need the script to update it regularly by looking at the available centres in the RTA website. Could be a similar script to the scrape_availability.py

    enhancement help wanted 
    opened by sbmkvp 3
Owner
Balamurugan Soundararaj
Post Doctoral Fellow on Data Analytics and Visualization at UNSW, Sydney. Working on visualizing property valuation models and results.
Balamurugan Soundararaj
Self Driving RC Car Code

Derp Learning Derp Learning is a Python package that collects data, trains models, and then controls an RC car for track racing. Hardware You will nee

Not Karol 39 Dec 7, 2022
Simulation of Self Driving Car

In this repository, the code to use Udacity's self driving car simulator as a testbed for training an autonomous car are provided.

Shyam Das Shrestha 1 Nov 21, 2021
CRISCE: Automatically Generating Critical Driving Scenarios From Car Accident Sketches

CRISCE: Automatically Generating Critical Driving Scenarios From Car Accident Sketches This document describes how to install and use CRISCE (CRItical

Chair of Software Engineering II, Uni Passau 2 Feb 9, 2022
Self-driving car env with PPO algorithm from stable baseline3

Self-driving car with RL stable baseline3 Most of the project develop from https://github.com/GerardMaggiolino/Gym-Medium-Post Please check it out! Th

Sornsiri.P 7 Dec 22, 2022
Manage the availability of workspaces within Frappe/ ERPNext (sidebar) based on user-roles

Workspace Permissions Manage the availability of workspaces within Frappe/ ERPNext (sidebar) based on user-roles. Features Configure foreach workspace

Patrick.St. 18 Sep 26, 2022
This program generates a random 12 digit/character password (upper and lowercase) and stores it in a file along with your username and app/website.

PasswordGeneratorAndVault This program generates a random 12 digit/character password (upper and lowercase) and stores it in a file along with your us

Chris 1 Feb 26, 2022
This is our ARTS test set, an enriched test set to probe Aspect Robustness of ABSA.

This is the repository for our 2020 paper "Tasty Burgers, Soggy Fries: Probing Aspect Robustness in Aspect-Based Sentiment Analysis". Data We provide

null 35 Nov 16, 2022
Indonesian Car License Plate Character Recognition using Tensorflow, Keras and OpenCV.

Monopol Indonesian Car License Plate (Indonesia Mobil Nomor Polisi) Character Recognition using Tensorflow, Keras and OpenCV. Background This applicat

Jayaku Briliantio 3 Apr 7, 2022
MohammadReza Sharifi 27 Dec 13, 2022
Python scripts for performing road segemtnation and car detection using the HybridNets multitask model in ONNX.

ONNX-HybridNets-Multitask-Road-Detection Python scripts for performing road segemtnation and car detection using the HybridNets multitask model in ONN

Ibai Gorordo 45 Jan 1, 2023
An Artificial Intelligence trying to drive a car by itself on a user created map

An Artificial Intelligence trying to drive a car by itself on a user created map

Akhil Sahukaru 17 Jan 13, 2022
Code for Towards Streaming Perception (ECCV 2020) :car:

sAP — Code for Towards Streaming Perception ECCV Best Paper Honorable Mention Award Feb 2021: Announcing the Streaming Perception Challenge (CVPR 2021

Martin Li 85 Dec 22, 2022
This project deploys a yolo fastest model in the form of tflite on raspberry 3b+. The model is from another repository of mine called -Trash-Classification-Car

Deploy-yolo-fastest-tflite-on-raspberry 觉得有用的话可以顺手点个star嗷 这个项目将垃圾分类小车中的tflite模型移植到了树莓派3b+上面。 该项目主要是为了记录在树莓派部署yolo fastest tflite的流程 (之后有时间会尝试用C++部署来提升

null 7 Aug 16, 2022
Car Parking Tracker Using OpenCv

Car Parking Vacancy Tracker Using OpenCv I used basic image processing methods i

Adwait Kelkar 30 Dec 3, 2022
This solves the autonomous driving issue which is supported by deep learning technology. Given a video, it splits into images and predicts the angle of turning for each frame.

Self Driving Car An autonomous car (also known as a driverless car, self-driving car, and robotic car) is a vehicle that is capable of sensing its env

Sagor Saha 4 Sep 4, 2021
An unofficial personal implementation of UM-Adapt, specifically to tackle joint estimation of panoptic segmentation and depth prediction for autonomous driving datasets.

Semisupervised Multitask Learning This repository is an unofficial and slightly modified implementation of UM-Adapt[1] using PyTorch. This code primar

Abhinav Atrishi 11 Nov 25, 2022
Help you understand Manual and w/ Clutch point while driving.

简体中文 forza_auto_gear forza_auto_gear is a tool for Forza Horizon 5. It will help us understand the best gear shift point using Manual or w/ Clutch in

null 15 Oct 8, 2022
(CVPR 2022) A minimalistic mapless end-to-end stack for joint perception, prediction, planning and control for self driving.

LAV Learning from All Vehicles Dian Chen, Philipp Krähenbühl CVPR 2022 (also arXiV 2203.11934) This repo contains code for paper Learning from all veh

Dian Chen 300 Dec 15, 2022