Check out this answer also for some info What ArcGIS geoprocessing tools support exporting tabular data to CSV?
Once you have a locator service, locator.addressesToLocations(options) is the API call to the locator http://help.arcgis.com/en/webapi/javascript/arcgis/jsapi/locator.html . However, none of the Esri sample servers let you batch geocode. You would need to set this up on your own ArcGIS Server. If you have a paid ArcGIS Online account you could do it there also.
As far as returning a csv file, one solution is to create your own geoprocessing service that wraps geocoding and places the finished file in the public output directory for download. You can then send the app the url of the file for a user to download.
Alternately, you could use flex or silverlight to receive the locator response, parse the json and save a csv file locally.
//this locator address is what it would look like, but you can't batch geocode (see above)
//var locator = new esri.tasks.Locator("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Locators/ESRI_Geocode_USA/GeocodeServer");
var addresses = [{
"OBJECTID": 0,
"STREET": "440 Arguello Blvd",
"ZONE": "94118"
}, {
"OBJECTID": 1,
"STREET": "100 Arguello Blvd",
"ZONE": "94118"
}];
locator.outSpatialReference = map.spatialReference;
var options = {
addresses: addresses
}
locator.addressesToLocations(options);
The addressesToLocations(options) will return an array of AddressCandidates. You can do whatever you like with them. You don't have to place on map.
http://help.arcgis.com/en/webapi/javascript/arcgis/jsapi/addresscandidate.html
Is there another way to geocode in QGIS?
with MMQGIS you can change the webservice to Nominatim .
No more need an API key, but please have a look to the policies
Best Answer
This should get you started. Python and the BeautifulSoup module to the rescue. The code below will print out a list of the 26 addresses on that webpage. I used Firebug in Firefox to look at the page source, which told me that the cell width was 37%. I gambled that those cells were maybe the only ones at 37% width, and was right. You should be able to feed the list of addresses you get into a online geocoder and get point locations.