Ë
    bwÚjŽK  ã                   ó  — d Z ddlZddlZddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlZdZ ed«      Zej#                  d¬	«       d
ddddddddœZh d£Zh d£Zeez  ZdZdZdZdZ ej4                  «       Zej8                  j;                  dddœ«       de
defd„Zdede
fd „Z d6d!ed"ed#ed$e!dee
   f
d%„Z"d7d&ed'ed(e!de	e
   fd)„Z#d*e	e
   de
fd+„Z$d,e
d-ede
fd.„Z%d/edefd0„Z&d1e	e
   d2e	e
   fd3„Z'd4„ Z(e)d5k(  r e(«        yy)8u¹   
Coleta empresas REAIS da Minha Receita API por cidade (sem filtro CNAE)
Depois filtra localmente pelos CNAEs alvo B2B/B2C
MantÃ©m estrutura do dashboard (B2B/B2C) com dados 100% reais
é    N)ÚPath)Údatetime)ÚListÚDictÚSetÚOptionalzhttps://minhareceita.orgz/root/lelyon_prospecting/dataT)Úexist_oku
   SÃ£o Paulou   SÃ£o Bernardo do Campou   Santo AndrÃ©u   SÃ£o Caetano do SulÚDiademau   MauÃ¡u   RibeirÃ£o PireszRio Grande da Serra)Ú3550308Ú3547000Ú3548701Ú3548800Ú3513606Ú3529305Ú3542607Ú3543506>   Ú4789099Ú4791302Ú4791303Ú6201500Ú6201501Ú6201502Ú6202300Ú6202301Ú6203100Ú6204000Ú6209100Ú6311900Ú6312200Ú7020400Ú7311400Ú7319002Ú7319003Ú7319004Ú7319099Ú7320300Ú8211300Ú8299799>'   Ú4711302Ú4712100Ú4721102Ú4722100Ú4723700Ú4730201Ú4741300Ú4742201Ú4744001Ú4744002Ú4751201Ú4752100Ú4753100Ú4754701Ú4755501Ú4761001Ú4762100Ú4763800Ú4771701Ú4772500Ú4781400Ú4782201Ú4783100Ú4784900r   r   r   Ú5611201Ú5611203Ú5612100Ú5620101Ú5630900Ú9601000Ú9602501Ú9602502Ú9603300Ú9609201Ú9609202Ú9609299gš™™™™™¹?é2   é   é   zLELYON-Prospecting/1.0zapplication/json)z
User-AgentÚAcceptÚprogressÚfilenamec                 óŽ   — t         |z  }t        |dd¬«      5 }t        j                  | |dd¬«       d d d «       y # 1 sw Y   y xY w)NÚwúutf-8©ÚencodingFé   ©Úensure_asciiÚindent)ÚDATA_DIRÚopenÚjsonÚdump)rQ   rR   ÚfilepathÚfs       ú5/root/lelyon_prospecting/collect_real_minhareceita.pyÚsave_progressrc   F   sA   € Ü˜(Ñ"€HÜ	ˆh˜ gÔ	.ð =°!Ü�	‰	�(˜A¨E¸!Õ<÷=÷ =ñ =ús	   ˜;»AÚreturnc                 ó¸   — t         | z  }|j                  «       r-t        |dd¬«      5 }t        j                  |«      cd d d «       S g i i dœd dœS # 1 sw Y   ŒxY w)NÚrrU   rV   ©Úb2bÚb2c)Úprocessed_citiesÚ	companiesÚlast_update)r\   Úexistsr]   r^   Úload)rR   r`   ra   s      rb   Úload_progressro   K   s\   € Ü˜(Ñ"€HØ‡�ÔÜ�(˜C¨'Ô2ð 	 °aÜ—9‘9˜Q“<÷	 ñ 	 à "¸ÀBÑ1GÐX\Ñ]Ð]÷	 ð 	 ús   ¨AÁAÚufÚ	municipioÚcursorÚlimitc           	      ó^  — | ||dœ}|r||d<   t         › d�}t        d«      D ]¿  }	 t        j                  ||d¬«      }|j                  dk(  r|j                  «       c S |j                  dk(  r-d	|z  d
z  }t        d|› d�«       t        j                  |«       Œyt        d|j                  › d|j                  dd › �«       	 |d	k  sŒ¨t        j                  d	|z  «       ŒÁ y# t        j                  $ r t        d|dz   › d�«       Y ŒHt        $ r}	t        d|	› �«       Y d}	~	Œcd}	~	ww xY w)u8   Busca empresas na Minha Receita API por UF e municÃ­pio.)rp   rq   rs   rr   ú/rN   rO   )ÚparamsÚtimeoutéÈ   i­  rX   é   u       â�³ Rate limited, aguardando zs...u      âš ï¸� Erro ú: Nu      â�±ï¸� Timeout (tentativa é   ú)u      â�Œ Erro: )ÚMINHA_RECEITA_APIÚrangeÚsessionÚgetÚstatus_coder^   ÚprintÚtimeÚsleepÚtextÚrequestsÚTimeoutÚ	Exception)
rp   rq   rr   rs   rv   ÚurlÚattemptÚrespÚwaitÚes
             rb   Úminha_receita_searchrŽ   R   s9  € à Y¸Ñ?€FÙØ!ˆˆxÑäÐ˜qÐ
!€Cä˜“8ò %ˆð	'Ü—;‘;˜s¨6¸2�;Ó>ˆDà×Ñ 3Ò&Ø—y‘y“{Ò"Ø×!Ñ! SÒ(Ø˜G‘| aÑ'�ÜÐ8¸¸¸dÐCÔDÜ—
‘
˜4Ô Øä˜¨×(8Ñ(8Ð'9¸¸D¿I¹IÀdÀs¸OÐ;LÐMÕNð �Q‹;Ü�J‰J�q˜G‘|Õ$ð'%ð* øô ×Ñò 	@ÜÐ1°'¸!±)°¸AÐ>Ö?Üò 	'Ü�M ! Ð%×&Ñ&ûð	'ús)   ¦6C%Á;C%Â(C%Ã%%D,ÄD,ÄD'Ä'D,Ú	city_codeÚ	city_nameÚ	max_pagesc           
      ó´  — g }d}d}t        d|› d| › d�«       ||k  rŸt        d| |«      }|st        d«       n„|j                  dg «      }|j                  |«       |d	z  }|j                  d
«      }|r|snFt        d|› dt	        |«      › dt	        |«      › d�«       t        j                  t        «       ||k  rŒŸt        d|› dt	        |«      › d�«       |S )u6   Busca todas as pÃ¡ginas de resultados para uma cidade.Nr   u   
ðŸ”� Buscando empresas em u
    (cÃ³digo z)...ÚSPu      â�Œ Falha na buscaÚdatar{   rr   u      ðŸ“„ PÃ¡gina z: +z empresas (total: r|   u      âœ… rz   z empresas encontradas)r‚   rŽ   r€   ÚextendÚlenrƒ   r„   ÚDELAY_BETWEEN_REQUESTS)r�   r�   r‘   Úall_companiesrr   Ú
page_countÚresultrk   s           rb   Úsearch_city_all_pagesr›   q   sõ   € à€MØ€FØ€Jä	Ð(¨¨°:¸i¸[ÈÐ
MÔNà
�yÒ
 Ü% d¨I°vÓ>ˆáÜÐ)Ô+Øà—J‘J˜v rÓ*ˆ	Ø×Ñ˜YÔ'Ø�a‰ˆ
à—‘˜HÓ%ˆÙ™YØäÐ   ¨C´°I³Ð/?Ð?QÔRUÐVcÓRdÐQeÐefÐgÔhÜ�
‰
Ô)Ô*ð! �yÓ
 ô$ 
ˆG�I�;˜b¤ ]Ó!3Ð 4Ð4IÐ
JÔKØÐó    rk   c                 óÜ   — g }g }| D ]_  }t        |j                  dd«      «      j                  «       }|t        v r|j	                  |«       ŒF|t
        v sŒO|j	                  |«       Œa ||dœS )z3Filtra empresas por CNAE alvo e classifica B2B/B2C.Úcnae_fiscalÚ rg   )Ústrr€   ÚstripÚ	B2B_CNAESÚappendÚ	B2C_CNAES)rk   rh   ri   ÚcÚcnaes        rb   Úfilter_by_cnaer§   Ž   sl   € à
€CØ
€Càò ˆÜ�1—5‘5˜¨Ó+Ó,×2Ñ2Ó4ˆØ”9ÑØ�J‰J�q�MØ”YÒØ�J‰J�q�Mðð ˜sÑ#Ð#rœ   ÚcompanyÚcategoryc                 óÄ  — | j                  dd«      j                  dd«      j                  dd«      j                  dd«      }t        |«      dk(  r|dd › d|dd	 › d|d	d
 › d|d
d › d|dd › �	n| j                  dd«      }g }dD ]‘  }| j                  d|› �«      }| j                  d|› �«      }|sŒ.|sŒ1t        |«      j                  dd«      j                  dd«      }|j	                  t        |«      d
k(  rd|› d|dd › d|dd › �nd|› d|› �«       Œ“ g }	| j                  d«      r-| j                  d«      r|	j	                  | d   › d| d   › �«       | j                  d«      r|	j	                  t        | d   «      «       | j                  d«      r|	j	                  | d   «       | j                  d«      r|	j	                  | d   «       | j                  d«      r-| j                  d«      r|	j	                  | d   › d| d   › �«       | j                  d«      r:t        | d   «      j                  d
«      }
|	j	                  d|
dd	 › d|
d	d › �«       | j                  dg «      }|D �cg c]&  }|j                  d«      sŒ|j                  dd«      ‘Œ( }}| j                  dd«      }	 t        t        |«      j                  d d«      «      }d!d"d#d$d%d&œ}|j                  | j                  d'd«      | j                  d(d«      «      }d)d*d+d,d-œ}|j                  | j                  d.d«      | j                  d.d+«      «      }| j                  d/d«      }|d0v rd1nd2}| j                  d3d«      }| j                  d4d«      }|rt        |«      nd}| j                  d5d«      }| j                  d6g «      }d7j                  |D �cg c]/  }|j                  d8«      sŒt        |j                  d8d«      «      ‘Œ1 c}«      }d9j                  |D �cg c]<  }|j                  d«      sŒ|j                  dd«      › d:|j                  d;d«      › d<�‘Œ> c}«      }i d=d>“d?d>“d@d>“dAd>“dBdC“dDdC“dEdC“dFdC“dGdH“dIdH“dJdH“dKdL“dMdN“dOdN“dPdN“dQdN“dRdN“dNdLdLdLdSdHdHdHdHdHdHdHdHdHdTœ¥}|t        v rdU}dV}ndW}t        |«      }i d=dX“d?dY“d@dZ“dAd[“dBdX“dDdZ“dEd[“dFd[“dGdX“dIdY“dJdZ“dKdY“dMdX“dOdY“dPdZ“dQdZ“dRd[“d\dZd[d]dYd\d\d^d^d]d[d]dZd_œ¥} ddddddd`œ}!i d=dXd[daœ“d?dYd]daœ“d@dZd\daœ“dAd[dbdaœ“dBdXd\d^dcœ“dDdZd\dddeœ“dEd[d^dfœ“dGdXd\dgœ“dKdYd^dhœ“dMdXdddiœ“dOdNdYi“dPdNdZi“dQdNdZi“dRdNd[i“djd\dddkœ“dldLdZi“dmdLd[i“d]d^dnœdYd^doœd\d^dgœd\dpdgœd^dbdoœd^d\doœd]d^doœd[dbdgœd]dbdoœdZd[dgœdqœ
¥}"i dt        |«      dk(  r|dd › d|dd	 › d|d	d
 › d|d
d › d|dd › �	nd“dr| j                  drd«      “ds| j                  dsd«      xs | j                  drd«      “dt| j                  dd«      “d| j                  dd«      “du|“dv|“dw| j                  d'd«      “d.| j                  d.d«      “d| j                  d«      r4t        t        | j                  ddx«      «      j                  d d«      «      nd“dy| j                  dzd«      “d{|“d||dUk(  rdVn
t        |«      “d}|j                  |dV«      “d~| j                  ||dUk(  rdnd€«      “d�|"j                  ||!«      “d‚d“i dƒd9j                  |«      “d„d“d…d“d†d‡“dˆ|r|d   nd“d‰|r|d   j                  d;d«      nd“dŠd“d‹d“dŒd“d�dŽ“d�t        j                  «       j                  «       “d�d‘|› d’| j                  dd«      › �“d3|“d“|“d”| j                  d•d«      “d6|“d|“¥||| j                  d•d«      ||d–œ¥S c c}w #  d}Y �Œ xY wc c}w c c}w )—z:Converte dados da Minha Receita para formato do dashboard.ÚcnpjrŸ   ú.ru   ú-é   NrX   ry   é   é   )r{   rX   Úddd_telefone_Ú	telefone_ú ú(z) é   Údescricao_tipo_de_logradouroÚ
logradouroÚnumeroÚcomplementoÚbairrorq   rp   ÚcepzCEP ÚqsaÚ
nome_socioÚcapital_socialr   ú,ÚAtivaÚBaixadaÚInaptaÚSuspensaÚNula)ÚATIVAÚBAIXADAÚINAPTAÚSUSPENSAÚNULAÚdescricao_situacao_cadastralÚsituacao_cadastralÚGrandeÚEPPÚMEÚMEI)ÚDEMAISzEMPRESA DE PEQUENO PORTEÚMICROEMPRESArÏ   ÚporteÚopcao_pelo_simples)ÚSÚtrueÚTrueÚSimu   NÃ£oÚnatureza_juridicarž   Úcnae_fiscal_descricaoÚcnaes_secundariosz, Úcodigoz; z (Úqualificacao_socior|   r   úPWA/App Developmentr   r   r   r   õ   Agente IA/AutomaÃ§Ã£or   r   r   r   úLoja WordPress/WooCommercer   r   r    úCRM & Estoque QR-Coder!   úMarketing Digital/Adsr"   r#   r$   r%   õ   SeguranÃ§a + SEO)r&   r    r'   r(   r   r   rA   rB   rG   rH   r=   r;   r<   r)   ÚB2BzN/AÚB2Cé_   éZ   éU   éP   éF   éK   é<   )r&   r'   r(   r   r   rA   rB   rG   rH   r=   r;   r<   r)   )rÝ   rÞ   rß   rà   râ   rá   )rÝ   rÞ   éA   )rÞ   rÝ   râ   rM   )rÞ   râ   rà   )rÞ   rÝ   )rß   rà   )rà   rÞ   )rá   rÝ   r&   )rá   rÞ   r'   r(   )râ   rÞ   )rß   rá   é7   )
r   r   rA   rB   rG   rH   r=   r;   r<   r)   Úrazao_socialÚnome_fantasiaÚcidader¦   Ú	cnae_descÚsituacaoÚ0Údata_aberturaÚdata_inicio_atividadeÚtipo_prospeccaoÚb2c_categoriaÚbest_fit_serviceÚ	fit_scoreé(   é#   Ú
lelyon_fitÚemailÚtelefoneÚwhatsappÚwebsiteÚwebsite_statusÚpendingÚcontato_nomeÚcontato_cargoÚlinkedinÚ	instagramÚfacebookÚfonte_enriquecimentoÚminha_receitaÚdata_enriquecimentoÚobservacoeszMinha Receita API | CNAE: z | Cidade: Úsimples_nacionalÚdata_situacaoÚdata_situacao_cadastral)rØ   r  r  rÚ   r¼   )r€   Úreplacer–   r    r£   ÚzfillÚfloatÚjoinr¢   Úguess_b2c_categoryr   ÚnowÚ	isoformat)#r¨   r©   Úcnpj_rawÚcnpj_fmtÚphonesÚiÚdddÚtelÚcleanÚendereco_partsr»   r¼   ÚsÚsociosÚcapitalÚcapital_valÚsituacao_maprò   Ú	porte_maprÒ   ÚsimplesÚsimples_strÚnaturezaÚcnae_rawr¦   rñ   Ú	cnaes_secr¥   Úcnaes_sec_strÚqsa_strÚservice_mapÚb2c_catÚ
fit_scoresÚlelyon_fitsÚ
lelyon_maps#                                      rb   Úenrich_company_datar0  œ   s®  € à�{‰{˜6 2Ó&×.Ñ.¨s°BÓ7×?Ñ?ÀÀRÓH×PÑPÐQTÐVXÓY€HÜehÐiqÓerÐvxÒex�(˜2˜A�,�˜q ¨!¨A  ¨q°¸!¸A°°¸qÀÈ!ÈBÀÐ@PÐPQÐRZÐ[]Ð[^ÐR_ÐQ`Ñað  F÷  Jñ  Jð  KQð  SUó  V€Hð €FØò iˆØ�k‰k˜M¨!¨Ð-Ó.ˆØ�k‰k˜I a S˜/Ó*ˆÚ’3Ü˜“H×$Ñ$ S¨"Ó-×5Ñ5°c¸2Ó>ˆEØ�M‰MÄÀEÃ
ÈaÂ˜A˜c˜U " U¨2¨A Y K¨q°°q°r°°Ñ<ÐWXÐY\ÐX]Ð]_Ð`eÐ_fÐUgÕhðið €NØ‡{�{Ð1Ô2°w·{±{À<Ô7PØ×Ñ Ð)GÑ!HÐ IÈÈ7ÐS_ÑK`ÐJaÐbÔcØ‡{�{�8ÔØ×Ñœc '¨(Ñ"3Ó4Ô5Ø‡{�{�=Ô!Ø×Ñ˜g mÑ4Ô5Ø‡{�{�8ÔØ×Ñ˜g hÑ/Ô0Ø‡{�{�;Ô G§K¡K°Ô$5Ø×Ñ ¨Ñ!5Ð 6°a¸À¹°ÐGÔHØ‡{�{�5ÔÜ�'˜%‘.Ó!×'Ñ'¨Ó*ˆØ×Ñ  S¨¨! W I¨Q¨s°1°2¨w¨iÐ8Ô9ð �+‰+�e˜RÓ
 €CØ/2ÖJ¨!°a·e±e¸LÕ6Iˆa�e‰e�L "Õ%ÐJ€FÐJð �k‰kÐ*¨AÓ.€GðÜœC ›L×0Ñ0°°cÓ:Ó;ˆð
 %°ÀhÐ\fÐpvÑw€LØ×Ñ §¡Ð,JÈBÓ OÐQX×Q\ÑQ\Ð]qÐsuÓQvÓw€Hð $ÀÐX\ÐejÑk€IØ�M‰M˜'Ÿ+™+ g¨rÓ2°G·K±KÀÈÓ4NÓO€Eð �k‰kÐ.°Ó3€GØ"Ð&;Ñ;‘%À€Kð �{‰{Ð.°Ó3€Hð �{‰{˜=¨"Ó-€HÙ$Œ3ˆxŒ=¨"€DØ—‘Ð3°RÓ8€Ið —‘Ð/°Ó4€IØ—I‘IÀÖ^¸AÈaÏeÉeÐT\Íoœs 1§5¡5¨°2Ó#6Õ7Ò^Ó_€Mð �i‰iÐadÖ|Ð\]Ðhi×hmÑhmÐnzÕh{˜AŸE™E ,¨rÓ2Ð3°2°a·e±eÐ<PÐQSÓ6TÐ5UÐUVÒWÒ|Ó}€GðØÐ(ðØ*3Ð5JðàÐ(ðà*3Ð5Jðð 	Ð*ðð -6Ð7Nðð 	Ð*ð	ð -6Ð7Nð	ð
 	Ð/ðð
 2;Ð<Xðð 	Ð/ðð 2;Ð<Sðð 	Ð*ðð -6Ð7Nðð 	Ð*ðð -6Ð7Nðð 	Ð*ðð 8OØ*Ð7NØ*Ð7IØ/Ð<XØ/Ð<XØ/Ð<XØ/Ð<XØ/ò!€Kð( ŒyÑØˆØ‰àˆÜ$ TÓ*ˆð
Ø�2ð
Ø  "ð
Ø&/°ð
Ø5>Àð
à�2ð
à  "ð
à&/°ð
à5>Àð
ð 	�2ð
ð ! "ð
ð '0°ð
ð 	�2ð	
ð ! "ð	
ð '0°ð	
ð 6?Àð	
ð
 	�2ð
ð
 ! "ð
ð
 24Ø "°Ø "°Ø "°Ø "°ò
€Jð  !¸1Ð\]Ø!"¸ÐTUñ€Kð
Ø¨2ÈÑKðà¨2ÈÑKðð 	¨2ÈÑKðð 	¨2ÈÑKð	ð
 	¨RÈÐ`bÑcðð 	¨RÀRÐbdÑeðð 	¨RÈÑKðð 	°"ÈrÑRðð 	¨RÈ"ÑMðð 	¨RÈÑKðð 	Ð+¨RÐ0ðð 3<Ð>UÐWYÐ=Zðð 	Ð+¨RÐ0ðð 3<Ð>UÐWYÐ=Zðð 	¨RÈ"ÑMðð 	Ð+¨RÐ0ðð 3<Ð>UÐWYÐ=Zðð )+ÀRÑHØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRò1€Jð6(ØÔfiÐjrÓfsÐwyÒfy�8˜B˜Q�<�.  (¨1¨Q - °°(¸1¸Q°-°ÀÀ(È1ÈRÀ.ÐAQÐQRÐS[Ð\^Ð\_ÐS`ÐRaÑbð  @Bð(à˜Ÿ™ N°BÓ7ð(ð 	˜Ÿ™ _°bÓ9Ò\¸W¿[¹[ÈÐY[Ó=\ð(ð 	�'—+‘+˜k¨2Ó.ð	(ð
 	�'—+‘+˜h¨Ó+ð(ð 	�ð(ð 	�Yð(ð 	�G—K‘KÐ >ÀÓCð(ð 	�—‘˜W bÓ)ð(ð 	Ð^e×^iÑ^iÐjzÔ^{œ%¤ G§K¡KÐ0@À#Ó$FÓ G× OÑ OÐPSÐUXÓ YÔZð  BCð(ð 	˜Ÿ™Ð%<¸bÓAð(ð 	˜8ð(ð 	 (¨eÒ"3™Ô9KÈDÓ9Qð(ð 	˜KŸO™O¨D°%Ó8ð(ð 	�Z—^‘^ D°¸EÒ0A©"ÀrÓJð(ð  	�j—n‘n T¨;Ó7ð!(ð" 	�ñ#(ð$ 	�D—I‘I˜fÓ%ð%(ð& 	�Bð'(ð( 	�2ð)(ð* 	˜)ð+(ð, 	¡V˜˜qš	°ð-(ð. 	Á˜˜Q™Ÿ™Ð$8¸"Ô=È"ð/(ð0 	�Bð1(ð2 	�Rð3(ð4 	�Bð5(ð6 	 ð7(ð8 	œxŸ|™|›~×7Ñ7Ó9ð9(ð: 	Ð3°D°6¸ÀWÇ[Á[ÐQ\Ð]_ÓE`ÐDaÐbð;(ð< 	˜Xð=(ð> 	˜Kð?(ð@ 	˜Ÿ™Ð%>ÀÓCðA(ðB 	˜]ðC(ðD 	ˆwñE(ðF &Ø'Ø Ÿ™Ð%>ÀÓCØ*ØòO(ð (ùòY KøðØ‹üò0 _ùò }s0   É1_	Ê_	Ê1$_ Ï_Ï_Ð_Ð)*_ß_r¦   c                 ó\   — t        | «      }ddddddddd	d
dœ
}|j                  |d d d«      S )Nu   Varejo & ComÃ©rciou   AlimentaÃ§Ã£o & Bebidasu   Beleza & EstÃ©ticau   ServiÃ§os Automotivosu   EducaÃ§Ã£o & Treinamentou   SaÃºde & Bem-estarzHospedagem & TurismozArtes & CulturazLazer & Esportesu   ServiÃ§os DomÃ©sticos)
Ú47Ú56Ú96Ú45Ú85Ú86Ú55Ú90Ú93Ú97rX   ÚOutros)r    r€   )r¦   Úcnae_strÚ
categoriass      rb   r  r  R  sI   € Ü�4‹y€Hà"Ð*CØ"Ð*AØ(Ð0DØ$Ð,=Ø Ð(?ñ€Jð �>‰>˜( 2 A˜,¨Ó1Ð1rœ   rh   ri   c           
      ó´  — t        j                  «       j                  d«      }| |dœ}| |z   }t        dt        j                  «       j                  d«      › d�z  }t	        |dd¬«      5 }t        j                  ||dd	¬
«       ddd«       t        dt        j                  «       j                  d«      › d�z  }|r¾t        |d   j                  «       «      }t	        |ddd¬«      5 }t        j                  ||¬«      }	|	j                  «        |D ]]  }
|D �ci c]  }||
j                  |d«      “Œ }}t        j                  |
j                  di «      d¬«      |d<   |	j                  |«       Œ_ 	 ddd«       t        dt        j                  «       j                  d«      › d�z  }t        j                   |d¬«      5 }	t        j"                  |«      }|d   j%                  d„ «      |d<   ||d   dk(     }||d   dk(     }|j'                  |	dd¬«       |j'                  |	dd¬«       |j'                  |	dd¬«       dt)        |«      dœdt)        | «      dœdt)        |«      dœg}t        j"                  |«      j'                  |	d d¬«       ddd«       |d!f|d"f|d#ffD ]I  \  }}t        |z  }|j+                  «       r|j-                  «        |j/                  |j0                  «       ŒK t3        d$«       t3        d%|› �«       t3        d&|› �«       t3        d'|› �«       t3        d(«       y# 1 sw Y   �Œ­xY wc c}w # 1 sw Y   �ŒÑxY w# 1 sw Y   ŒÀxY w))z&Salva resultados em JSON, CSV e Excel.z%Y%m%d_%H%M%Srg   Úlelyon_real_minhareceita_z.jsonrT   rU   rV   FrX   rY   Nz.csvr   z	utf-8-sigrŸ   )rW   Únewline)Ú
fieldnamesrü   ©rZ   z.xlsxÚopenpyxl)Úenginec                 óf   — t        | t        «      rt        j                  | d¬«      S t	        | «      S )NFrC  )Ú
isinstanceÚdictr^   Údumpsr    )Úxs    rb   ú<lambda>zsave_results.<locals>.<lambda>y  s:   € ÔmwÐxyÔ{ô  nAÌÏ
É
ÐSTÐchÔHi€ ô  GJð  KLó  GM€ rœ   Úlelyon_fit_strrö   rã   rä   ÚTodos)Ú
sheet_nameÚindexÚTotal)u   MÃ©tricaÚValorÚEstatisticasz$lelyon_real_minhareceita_latest.jsonz#lelyon_real_minhareceita_latest.csvz$lelyon_real_minhareceita_latest.xlsxu   
ðŸ’¾ Arquivos salvos:u      ðŸ“„ JSON: u      ðŸ“Š CSV:  u      ðŸ“ˆ Excel: u(      ðŸ”— Symlinks: *_latest.* atualizados)r   r  Ústrftimer\   r]   r^   r_   ÚlistÚkeysÚcsvÚ
DictWriterÚwriteheaderr€   rI  ÚwriterowÚpdÚExcelWriterÚ	DataFrameÚapplyÚto_excelr–   rm   ÚunlinkÚ
symlink_toÚnamer‚   )rh   ri   Ú	timestampÚcombinedr˜   Ú	json_filera   Úcsv_filerB  Úwriterr¥   ÚkÚrowÚ
excel_fileÚdf_allÚdf_b2bÚdf_b2cÚstatsÚsrcÚdst_nameÚdsts                        rb   Úsave_resultsrq  ]  sB  € ä—‘“×'Ñ'¨Ó8€Ià 3Ñ'€HØ˜#‘I€Mô Ð6´x·|±|³~×7NÑ7NÈÓ7_Ð6`Ð`eÐfÑf€IÜ	ˆi˜ wÔ	/ð =°1Ü�	‰	�(˜A¨E¸!Õ<÷=ô Ð5´h·l±l³n×6MÑ6MÈoÓ6^Ð5_Ð_cÐdÑd€HÙÜ˜-¨Ñ*×/Ñ/Ó1Ó2ˆ
Ü�(˜C¨+¸rÔBð 	%ÀaÜ—^‘^ A°*Ô=ˆFØ×ÑÔ Ø"ò %�Ø0:Ö;¨1�q˜!Ÿ%™%  2›,‘Ð;�Ð;Ü$(§J¡J¨q¯u©u°\À2Ó/FÐUZÔ$[��LÑ!Ø—‘ Õ$ñ%÷	%ô Ð7¼¿¹»×8OÑ8OÐP_Ó8`Ð7aÐafÐgÑg€JÜ	�‰˜
¨:Ô	6ð U¸&Ü—‘˜mÓ,ˆØ#)¨,Ñ#7×#=Ñ#=ñ  ?Mó  $NˆÐÑ à˜Ð0Ñ1°UÑ:Ñ;ˆØ˜Ð0Ñ1°UÑ:Ñ;ˆà�‰˜¨7¸%ˆÔ@Ø�‰˜¨5¸ˆÔ>Ø�‰˜¨5¸ˆÔ>ð !¬3¨}Ó+=Ñ>Ø¬¨S«Ñ2Ø¬¨S«Ñ2ð
ˆô
 	�‰�UÓ×$Ñ$ V¸ÈeÐ$ÔT÷#Uð* 
Ð:Ð;Ø	Ð8Ð9Ø	Ð;Ð<ðò !‰ˆˆXô
 ˜Ñ!ˆØ�:‰:Œ<Ø�J‰JŒLØ�‰�s—x‘xÕ ð!ô 
Ð#Ô%Ü	ˆN˜9˜+Ð
&Ô'Ü	ˆN˜8˜*Ð
%Ô&Ü	ˆO˜J˜<Ð
(Ô)Ü	Ð4Õ6÷g=ñ =üò <÷		%ñ 	%ú÷Uð Uús7   Á*L/Ã'1MÄL<Ä2?MÆ?CMÌ/L9Ì<MÍMÍMc                  ól  — t        d«       t        d«       t        d«       t        dt        t        j                  «       «      › �«       t        dt	        t
        «      › dt	        t        «      › �«       t        «        g } g }d}d}t        j                  «       D ]À  \  }}t        ||«      }|t	        |«      z  }t        |«      }| j                  |d   «       |j                  |d   «       |t	        |d   «      t	        |d   «      z   z  }t        d	|› d
t	        |«      › dt	        |d   «      › dt	        |d   «      › d�	«       t        j                  d«       ŒÂ t        dd› �«       t        d«       t        d|d›�«       t        d|d›�«       t        dt	        | «      d›�«       t        dt	        |«      d›�«       |dk(  rt        d«       y t        d«       | D �cg c]  }t        |d«      ‘Œ }	}|D �cg c]  }t        |d«      ‘Œ }
}t        |	|
«       t        d«       y c c}w c c}w )NzF======================================================================z@COLETA REAL - MINHA RECEITA API (busca por cidade + filtro CNAE)z	Cidades: zCNAEs B2B: z | B2C: r   rh   ri   u      ðŸ“Š rz   u    total â†’ z B2B + z B2Cr{   ú
z<============================================================u   COLETA CONCLUÃ�DA!zTotal empresas consultadas: r¿   z Empresas filtradas (CNAE alvo): z  B2B: z  B2C: u1   âš ï¸� Nenhuma empresa encontrada com CNAEs alvo.u*   
ðŸ”§ Formatando dados para o dashboard...rã   rä   u6   
âœ… CONCLUÃ�DO! Dados reais prontos para o dashboard.)r‚   rT  ÚTARGET_CITIESÚvaluesr–   r¢   r¤   Úitemsr›   r§   r•   rƒ   r„   r0  rq  )Úall_b2bÚall_b2cÚtotal_foundÚtotal_filteredr�   r�   rk   Úfilteredr¥   Úb2b_formattedÚb2c_formatteds              rb   Úmainr~  œ  s  € Ü	ˆ(„OÜ	Ð
LÔMÜ	ˆ(„OÜ	ˆI”dœ=×/Ñ/Ó1Ó2Ð3Ð
4Ô5Ü	ˆKœœI›Ð' x´´I³Ð/?Ð
@ÔAÜ	„Gà€GØ€GØ€KØ€Nä -× 3Ñ 3Ó 5ò Ñˆ	�9ä)¨)°YÓ?ˆ	Ø”s˜9“~Ñ%ˆô " )Ó,ˆØ�‰�x ‘Ô'Ø�‰�x ‘Ô'Øœ#˜h u™oÓ.´°X¸e±_Ó1EÑEÑEˆä�˜˜ 2¤c¨)£nÐ%5°[ÄÀXÈeÁ_ÓAUÐ@VÐV]Ô^aÐbjÐkpÑbqÓ^rÐ]sÐswÐxÔyô 	�
‰
�1�ðô  
ˆBˆvˆhˆ-ÔÜ	ÐÔ Ü	Ð(¨°Q¨Ð
8Ô9Ü	Ð,¨^¸AÐ,>Ð
?Ô@Ü	ˆG”C˜“L Ð#Ð
$Ô%Ü	ˆG”C˜“L Ð#Ð
$Ô%à˜ÒÜÐAÔBØô 
Ð
7Ô8Ø<CÖD°qÔ(¨¨EÕ2ÐD€MÐDØ<CÖD°qÔ(¨¨EÕ2ÐD€MÐDô � Ô.ä	Ð
CÕDùò EùÚDs   Ç&H,Ç?H1Ú__main__)Néd   )rM   )*Ú__doc__r†   r^   rV  rƒ   Úpathlibr   r   Útypingr   r   r   r   ÚpandasrZ  r}   r\   Úmkdirrt  r¢   r¤   ÚALL_TARGET_CNAESr—   ÚMAX_PAGES_PER_CITYÚMAX_RETRIESÚTIMEOUTÚSessionr   ÚheadersÚupdater    rc   ro   ÚintrŽ   r›   r§   r0  r  rq  r~  Ú__name__© rœ   rb   ú<module>r�     sÉ  ðñó Û Û 
Û Ý Ý ß ,Ó ,Û ð /Ð ÙÐ/Ó0€Ø ‡�˜€Ô ð Ø'ØØ$ØØØ Ø$ñ	€ò€	ò	€	ð ˜yÑ(Ð ð Ð ØÐ Ø€Ø
€à
ˆ(×
Ñ
Ó
€Ø ‡�× Ñ Ø*Ø ñô ð=˜Dð =¨Có =ð
^˜Cð ^ Dó ^ñ˜Sð ¨Sð ¸#ð ÈSð Ð[cÐdhÑ[ió ñ> Sð °Sð ÀSð ÐRVÐW[ÑR\ó ð:$˜d 4™jð $¨Tó $ðt ð t°ð t¸ó tðl	2˜Sð 	2 Só 	2ð<7�d˜4‘jð <7 t¨D¡zó <7ò~0Eðd ˆzÒÙ…Fð rœ   