Wget returning binary instead of html?

This is a gzip compressed file. You can find this out by running the file command, which figures out the file format from magic numbers in the data (this is how programs such as Text Wrangler figure out that the file is compressed as well):

file output.html
wget -O - … | file -

The server (I guessed it from the content you showed) is sending gzipped data and correctly setting the header

Content-Encoding: gzip

but wget doesn't support that. In recent versions, wget sends Accept-encoding: identity, to tell the server not to compress or otherwise encode the data. In older versions, you can send the header manually:

wget --header 'Accept-encoding: identity' …

However this particular server appears to be broken: it sends compressed data even when told not to encode the data in any way. So you'll have to decompress the data manually.

wget -O output.html.gz … && gunzip output.html.gz

This file is still compressed with gzip.

You can see that the first two bytes 0x1f8b match the gzip signature. So to read the data you need to uncompress it.

mv file.dat file.dat.gz
gunzip file.dat.gz

Or

zcat file.dat