Skip to content

Instantly share code, notes, and snippets.

@adlerdias
Created September 28, 2020 13:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adlerdias/0ef80fd15612bc77e8e4f5c9abc3ead7 to your computer and use it in GitHub Desktop.
Save adlerdias/0ef80fd15612bc77e8e4f5c9abc3ead7 to your computer and use it in GitHub Desktop.
Alguém tem curiosidade de saber como baixar os dados históricos da B3 automaticamente
import os
from multiprocessing import Pool, cpu_count
import urllib.request
urlbasepath='http://bvmf.bmfbovespa.com.br/InstDados/SerHist/COTAHIST_A'
ext='.zip'
# não dá pra usar os cores pois os downlads dependem da sua banda
multiplier=2
# troca pelo path que você preferir ex: c:/
destinationPath = os.path.dirname(os.path.abspath(__file__))+'/downloads/'
print("destino dos arquivos: %s " % destinationPath)
urls=[urlbasepath+str(i)+ext for i in range(1986,2019)]
def download_zips(url):
file_name = url.split("/")[-1]
print("\n iniciando download {} ".format(file_name))
urllib.request.urlretrieve(url, destinationPath+file_name)
print("\n Download {} finalizado".format(file_name))
if __name__ == "__main__":
pool = Pool(cpu_count()*multiplier)
results = pool.map(download_zips, urls)
pool.close()
pool.join()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment