What is a RELIABLE way to detect a client’s browser and its version number?

What is a reliable way to detect someone’s browser and its version number? From what I’ve seen, things like the navigator object in JavaScript simply do not work toward this end, and neither do a lot of these really hacked-together solutions I’m coming across. There are one or two currently functional JavaScript code snippets I’ve come across that’ll tell me whether someone is using Firefox, Chrome, etc., but they don’t describe the version number of each browser. How can this be found, and how can it be done reliably? (The front-ends are a couple of Flex applications.)

Which mobile browsers support javascript (and Ajax)?

For the web site I’m building (targeted at mobile users) I’m thinking of using some Ajax controls. I’d like to know which mobile browsers do and don’t support Javascript and Ajax, so I can know whether I’ve at least covered the majority of my target market (i.e. iPhone, Droid, Nokia, Opera). If not, I’ll have to find an alternative way of presenting my forms…

Why does FireFox 3.6.8 not cache static contents from asp.net developer server?

I am working on a asp.net web site, like normal user, we use asp.net developer server during coding and testing.
Today, I found the firefox not cache any static file of my site, since our application is pretty big, it made page load time very slow.
I checked firefox about:cache, all the static file cache setting looks like

scrape html generated by javascript with python

I need to scrape a site with python. I obtain the source html code with the urlib module, but I need to scrape also some html code that is generated by a javascript function (which is included in the html source). What this functions does “in” the site is that when you press a button it outputs some html code. How can I “press” this button with python code? Can scrapy help me? I captured the POST request with firebug but when I try to pass it on the url I get a 403 error. Any suggestions?