I’m trying to get Alexa web stats on 1,000 firms websites. I have the
website addresses etc in an MS Access database.
I’ve used the example Ruby code from Alexa Web Information Service to
get web stats manually using Ruby but am a little bit stuck as to the
next two steps to achieve my goal.
Step 2. How do I connect to an Access Database to gather my URLs ?
In the past i’ve used ADO to connect to an MS Access database
and
Step 3. How would I insert the results back into the database ?
Any ideas on how i’d go about steps 2 and 3 would be greatly
appreciated
Step 2. How do I connect to an Access Database to gather my URLs ?
In the past i’ve used ADO to connect to an MS Access database
Step 3. How would I insert the results back into the database ?
The simple way is to export the list from the database into a text file
(CSV would be an obvious choice), get Ruby to read that text file and
write a new one, then import that back in.
Given my freshness to Ruby at this stage I just want to make sure I can
get access to the database and get something showing on screen.
I have the OneClick windows installer version of Ruby on my machine, I’m
currently getting this error message when running the code…
dbtest.rb:15:in `method_missing’: open (WIN32OLERuntimeError)
OLE error code:80004005 in Microsoft OLE DB Provider for ODBC
Drivers
[Microsoft][ODBC Microsoft Access Driver] Could not find file
‘(unknown)’.
HRESULT error code:0x80020009
Exception occurred. from dbtest.rb:15
…
Can anyone see anything I’m doing which is obviously wrong at this stage
?
Right , very close to achieving my objective , thanks very much for
everyones input so far , its really helped me along the learning curve
with Ruby.
I’m down to one last problem …
So far , I’ve connected to my Access database and pulled out a list of
URLs and there ID’s , i’ve used the URL in the code from Alexa to obtain
the page rank.
Now all I have to do is somehow parse the XML from the Alexa data back
into Ruby to insert it back into my database…
…
Inside double-quotes, the '' is the escape character.
You can switch to single-quotes, or use the ‘/’ as path separator
You use File.dirname, but this will strip off the last path element so
File.dirname(“C:\Documents and Settings\Andy\Desktop”)
returns
C:\Documents and Settings\Andy
and need to ensure a path separator is placed between ‘Desktop’ and
‘Alexa.mdb’
I’d probably use:
base_dir = “C:/Documents and Settings/Andy/Desktop/”
ado_con.open(“DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=#{base_dir}Alexa.mdb”)
Now all I have to do is somehow parse the XML from theAlexadata back aws:TrafficData
–
Posted viahttp://www.ruby-forum.com/.
I think the simplest way would be to store this XML in an String and
then:
start = xml.index(‘aws:Rank’) + ‘aws:Rank’.length
fin = xml.index(‘</aws:Rank>’)
rank = xml[start…fin]
Of course you could explore RegEx or an XML lib (Hpricot, ReXML,…)
ado_con.open “DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=” +
base_dir = File.dirname(“C:\Documents and Settings\Andy\Desktop”)
That should be “C:\Documents and Settings\Andy\Desktop” … ‘’ is an
escape character inside the Ruby double-quoted string, so to ask for one
backslash you need to use two of them. What Windows is seeing the way
you coded it is “C:Documents and SettingsAndyDesktop”.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.