Why the first job is to split the question
Almost every brief that names Bloomberg is really three different requests, and each has a different honest answer.
The first is market data: prices, fundamentals, reference data. That is Bloomberg's core licensed product and it is not on the public website to be collected. The legitimate routes are a Bloomberg licence, or the primary publications of exchanges and regulators, which are often free and are the original source anyway.
The second is instrument identification: matching securities across a client's systems. Bloomberg publishes an open standard for exactly this, with a free interface, and building a scraper instead of using it would be solving a solved problem badly.
The third is news: what Bloomberg reported and when. That is a licensing question for the text, and a measurement question for the coverage, which can be answered from citations elsewhere.
The site's own answer to anonymous requests is 403, and its crawl rules name AI crawlers for exclusion. We do not treat either as an obstacle to engineer around. Splitting the brief almost always produces a better dataset than a crawl would have, and one the client can defend.