Hi Quaracia
I've already written a scraper for exactly this kind of project in the past. The only difference between what you are requesting and what my does is that I need to have a target search URL to scrape from.
Basically, I'd need you to go to yellow pages, type in a search that gives you the results you're looking for, and then give me the URL. Once I have this, I can scrape the data you need. Just searching for all companies in NSW is far too broad.
One of the reasons for this is that on yellow pages, the number of results you can get back is limited to 37 listings per page, and a maximum of 29 pages (try it for yourself - search for something, then click through the pagination all the way to page 29 - you will see that you can't get any more pages beyond this). This means your search term should contain no more than 29*37 listings.
Basically if you give me some URLs, I can scrape up to 29*37 listings from them.
The information I'd be able to get you (if available) is:
Company Name
Address
Mobile Number
Phone Number
Website
Email
The only way to get the category information is if you tick a particular category when you have done your search. If you were to give me a list of search URLS (that have categories ticked) then I can scrape them and include category information too.
Alternatively, I can give you the script, when all you would need to do is enter a search url, and it would do the rest. You then just keep on putting in different search URLs.