I've spent some time on programmatic mining of GEO and ArrayExpress. I wish the answer were "yes there is", but it is not.
First, both databases have APIs. The API for the ArrayExpress gene atlas is described here. It is rather limited in terms of queries and somewhat buggy - in fact, it's an internal API exposed to the outside world and is not really ready for general use.
GEO is searchable using EUtils. Programmatic access is described here. I have compiled lists of the terms that you can use to search the Entrez databases at this link: take a look at the gds, geoprofiles and geo text files. All the major programming languages have EUtils libraries: here are links for Bioperl, Biopython and BioRuby. I know the latter best; a simple query might look like this:
#!/usr/bin/ruby
require "rubygems"
require "bio"
# query GEO for GSE
Bio::NCBI.default_email = "me@me.com"
ncbi = Bio::NCBI::REST.new
search = ncbi.esearch(Homo+sapiens[ORGN] AND GSE[ETYP] AND cel[suppFile]", {"db" => "gds", "retmax" => 200})
That will find GEO series for human studies with supplementary CEL file data.
You will encounter numerous issues with GEO: particularly (1) poorly-annotated samples and errors due to e.g. typos, because standards are not enforced and (2) expression values which may or may not be normalised (and if they are, in a variety of ways). So brace yourself for lots of manual curation.
In fact if you're interested in only a few genes, you may decide that programmatic access is more trouble than it is worth and just explore via the web interfaces. At the NCBI, searching GEO Profiles can be useful for a gene-centric view. The ArrayExpress Gene Atlas interface starts here.