I would like to find out where a website is hosted, in other words where the server/datacentre is located and the name of the company that provides the hosting. I have used the various websites that come up on google but they keep telling me that cloudflare etc. is the hoster when its not. Cloudflare doesn't host any files nor provide web servers.
If your queries are showing that the site is hosted by Cloudflare, then the site that you are trying to look-up may be protected by Cloudflare's web application firefall (WAF).
In this case, the DNS A record for the site will point to a server on Cloudflare's network. The Cloudflare server will act as a reverse-proxy - forwarding requests to the site's actual server, and relaying responses from the site's actual server back to the user. But, this is opaque to the user, and if configured correctly, there is no way for you to find the IP address and/or network where the actual server is hosted. This is by design, see Does Cloudflare masking my IP make my server more secure? for more info.