Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I looked through the master list of data sources but could not find any data sources for financial data of global equities. An example would be the balance sheet of, say, STO:HM-B. The company can be found on both Yahoo Finance and Google Finance but they do not give any financial data.

Morningstar.com is the only online site I've found so far that even has the data, but I suspect that isn't free data to use in applications. Also, even if I were to want to scrape that data it would be near impossible since it appears to be JavaScript generated post-page load.

What I'm hoping to find is something in XML format or in a format I can myself translate to XML. Even HTML is fine, just as long as it's one site for all financials for most global equities.

share|improve this question
Is there an issue with Bloomberg or Thomson-Reuters? That's what any professional would use. – chrisaycock Jun 2 '13 at 18:06
Sorry, I should have specified more clearly that I preferably wanted something that's free to use. – Doggie52 Jun 2 '13 at 18:17
For US companies you can scrape it yourself because it's public information -- not an easy task though! sec.gov/edgar/searchedgar/cik.htm – Brian B Jun 3 '13 at 12:52
@BrianB H&M is a big Swedish retailer, so that approach wouldn't apply (it's also why there isn't any data on Google/Yahoo). I'm not aware of any free site for global balance sheet information. I get mine from Bloomberg or Factset. – John Jun 3 '13 at 15:40

Marketwatch has financials for a lot of companies, including H&M: Annual Financials for H&M Hennes & Mauritz AB Series B

preview of H&M financials

share|improve this answer

The prices you are looking for can be found at https://www.google.com/finance/getprices?q=HM-B&x=STO&i=60&p=5d&f=d,c,o,h,l&df=cpct&auto=1&ts=1266701290218

URL breakdown, I am lazy so I copied

q= stock symbol on Google finance x= exchange symbol i= interval (here 60 means 60 sec (1 minute interval))

p= no of period(here 5d denotes 5days of data)

f= parameters (day, close, open, high and low) df= difference (cpct is may be in % change )

auto =1, ts = time start…



Javascript page scraping...

This is a tip for dealing with the javascript driven pages when scraping. If you write a scraper in .Net, use a visible or invisible WebBrowser control, suppress errors and allow the page to load. After load, you can force the click state (control.InvokeMember("onclick")) on whatever control you need and you are good.

Below is a snipit in VB:

    WebB.ScriptErrorsSuppressed = True
    WaitForPageLoad() 'this is custom, search stackoverflow for this
    Dim doc As HtmlDocument = WebB.Document

    For Each c As HtmlElement In doc.All
        If c.Name = "someelementname" Then
            Dim ctrlAll As HtmlElement = doc.All(c.Id)
        End If
share|improve this answer
What I'm looking for are financials and not prices. Prices are easier to get hold of elsewhere to be honest. – Doggie52 Dec 11 '13 at 21:03
My apologies, I over looked the mention to balance sheets. I will take a look and see if I have anything that might work. – MonkeyDoug Dec 11 '13 at 22:57
I don't see anything for europe as a whole, but there are a number of country specific agencies like Swedens fi.se/Folder-EN/Startpage MSN also has some basic investing.money.msn.com/investments/… I wish I had more, I focus more on the economics but if I see anything I will update – MonkeyDoug Dec 11 '13 at 23:39
up vote 1 down vote accepted

Morningstar is the best one I've found so far. It has all the data required and, as I've recently found, can export it quite easily to CSV. The key is to send the right parameters to /ajax/ReportProcess4CSV.html. In what scenarios scraping this is allowed, I do not know. I will endeavor to find out once I start building this application.

For anyone looking to do the same thing, the following parameters are the ones I use:

$defaults = array(
            't'             => '',      // The ticker
            'reportType'    => '',      // 'is', 'bs' or 'cf' depending on what you want
            'period'        => 12,
            'dataType'      => 'A',
            'columnYear'    => 5,

The last three parameters are not there for you to change but simply have to be part of the URL.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.