Hi – I’d agree with Trader333 and suggest Yahoo.
You can construct URLs to download the specific data you want. For example, loading the following URL will download a csv file containing the first 50 stocks in the S&P500, showing for each the name, current price, 52-wk high and percentage change from 52-wk high:
http://download.finance.yahoo.com/d/quotes.csv?s=@^GSPC&f=nl1kk5&e=.csv
Use these URLs to download the next batches of 50, just incrementing the number at the end by 50 until you’ve got the lot:
http://download.finance.yahoo.com/d/quotes.csv?s=@^GSPC&f=nl1kk5&e=.csv&h=50
http://download.finance.yahoo.com/d/quotes.csv?s=@^GSPC&f=nl1kk5&e=.csv&h=100
(there might be a way of downloading the whole lot in one file but I haven’t found it!)
It's the bit after f= in the URLs that determines what info is downloaded: n = name, l1= last price, k= 52-week high and k5=percentage from 52-week high.
More details on this website:
Yahoo Stock Quotes - DIYTraders
(I’ve got no affiliation with them)
This is the equivalent URL for the first 50 stocks in NASDAQ:
http://download.finance.yahoo.com/d/quotes.csv?s=@^IXIC&f=nl1kk5&e=.csv
although it’d take you a while to download the lot in batches of 50!