Ë
    ¸¬uj§-  ã                   ó  — d Z ddlZddlZddl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ZdZdZdd	d
œZej                  j                   j#                  «        d„ Zd„ Zdd„Zd„ Zefd„Zd„ Zd„ Z	 	 dd„Zd„ Zedk(  r e«        yy)uK  
crawl_pingba_tzgg.py - å¹³å��åŒºäººæ°‘æ”¿åºœ-é€šçŸ¥å…¬å‘Š
===============================================
ç«™ç‚¹: https://www.pingba.gov.cn/xwzx/tzgg/
CMS:  Custom CMS + TRS Editor
åˆ—è¡¨: ul.NewsList > li > a[title][href] + span (15æ�¡/é¡µ, é�™æ€�åˆ†é¡µ)
        index.html â†’ index_1.html â†’ index_2.html ... index_18.html
è¯¦æƒ…: div.Article_Con.aBox > div.trs_editor_view, meta ArticleTitle/PubDate

ç”¨æ³•:
  python3 crawl_pingba_tzgg.py              # é»˜è®¤5é¡µ
  python3 crawl_pingba_tzgg.py --pages 5    # æŒ‡å®šé¡µæ•°
  python3 crawl_pingba_tzgg.py --dry-run    # ä»…é¢„è§ˆ
é    N)Údatetime)ÚBeautifulSoupzhttps://www.pingba.gov.cnz
/xwzx/tzggé   zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8)z
User-AgentÚAcceptc                 óp   — t        j                  «       j                  d«      }t        d|› d| › �d¬«       y )Nz%H:%M:%Sú[ú] T)Úflush)r   ÚnowÚstrftimeÚprint)ÚmsgÚtss     ú&/root/gov_crawler/crawl_pingba_tzgg.pyÚlogr   "   s.   € Ü	�‰‹×	 Ñ	  Ó	,€BÜ	ˆAˆbˆT��C�5ˆ/ Ö&ó    c                 óŽ   — | sy| j                  dd«      j                  dd«      j                  dd«      } | j                  d«      S )	NÚ z&middot;õ   Â·z&nbsp;ú z&amp;ú&u   Â·. 	
)ÚreplaceÚstrip)Útitles    r   Úclean_titler   '   sB   € ÙØØ�M‰M˜* dÓ+×3Ñ3°H¸cÓB×JÑJÈ7ÐTWÓX€EØ�;‰;�|Ó$Ð$r   c                 óÒ   — 	 t        j                  | t        |d¬«      }|j                  dk(  rd|_        |j
                  S y # t        $ r}t        d| › d|› �«       Y d }~y d }~ww xY w)NF)ÚheadersÚtimeoutÚverifyéÈ   zutf-8u   è¯·æ±‚å¤±è´¥ z: )ÚrequestsÚgetÚHEADERSÚstatus_codeÚencodingÚtextÚ	Exceptionr   )Úurlr   ÚrÚes       r   Ú
fetch_pager+   .   sb   € ðÜ�L‰L˜¤g°wÀuÔMˆØ�=‰=˜CÒØ ˆAŒJØ—6‘6ˆMØøÜò Üˆm˜C˜5  1 #Ð&Ô'Üûðús   ‚>A Á	A&ÁA!Á!A&c                 óˆ  — g }t        | d«      }|j                  dd¬«      }|st        d«       |S |j                  dd¬«      D ]û  }|j                  d	«      }|j                  d
«      }|sŒ(|sŒ+|j	                  dd«      j                  «       }|j	                  dd«      j                  «       xs |j                  d¬«      }|j                  d¬«      }	|sŒ”|sŒ—|j                  d«      r
t        |z   }n,|j                  d«      st        dz   |j                  d«      z   }|j                  t        |«      ||	dœ«       Œý |S )Núhtml.parserÚulÚNewsList©Úclass_u     âš  æœªæ‰¾åˆ° NewsListÚliT)Ú	recursiveÚaÚspanÚhrefr   r   ©r   ú/Úhttp)r   r(   Údate)r   Úfindr   Úfind_allr"   r   Úget_textÚ
startswithÚBASE_URLÚlstripÚappendr   )
ÚhtmlÚitemsÚsoupr.   r2   r4   Ú	date_spanr6   r   Ú	date_texts
             r   Úextract_list_itemsrG   :   s%  € Ø€EÜ˜˜}Ó-€DØ	�‰�4 
ˆÓ	+€BÙÜÐ&Ô'ØˆØ�k‰k˜$¨$ˆkÓ/ò \ˆØ�G‰G�C‹LˆØ—G‘G˜F“Oˆ	Ú’Ø—5‘5˜ Ó$×*Ñ*Ó,ˆDØ—E‘E˜' 2Ó&×,Ñ,Ó.ÒH°!·*±*À4°*Ó2HˆEØ!×*Ñ*°Ð*Ó6ˆIÚšØ—?‘? 3Ô'Ü# d™?‘DØŸ™¨Ô0Ü# c™>¨D¯K©K¸Ó,<Ñ<�DØ—‘¤{°5Ó'9À$ÐPYÑZÕ[ð\ð €Lr   c           	      ó(  — g }t        d| dz   «      D ]¥  }|dk(  rt        › t        › d�}nt        › t        › d|dz
  › d�}t        d|› d�«       t	        |d¬«      }|st        d	|› d
�«        nLt        |«      }|st        d|› d�«        n.t        d|› dt        |«      › d�«       |j                  |«       Œ§ t        «       }g }|D ]/  }|d   |vsŒ|j                  |d   «       |j                  |«       Œ1 t        dt        |«      › d�«       |S )Né   z/index.htmlz/index_z.htmlu	   èŽ·å�–ç¬¬u   é¡µ...é   ©r   u	     âš  ç¬¬u   é¡µèŽ·å�–å¤±è´¥ï¼Œå�œæ­¢u     ç¬¬u   é¡µ: 0æ�¡ï¼Œå�œæ­¢u   é¡µ: õ    æ�¡r(   u   åŽ»é‡�å�Žå…± )Úranger?   Ú	LIST_PATHr   r+   rG   ÚlenÚextendÚsetÚaddrA   )	ÚpagesÚ	all_itemsÚpage_idxr(   rB   rC   ÚseenÚuniqueÚitems	            r   Ú
fetch_listrY   Q   s3  € Ø€IÜ˜!˜U Q™YÓ'ò  ˆØ�qŠ=Ü�Jœy˜k¨Ð5‰Cä�Jœy˜k¨°¸!±°¸EÐBˆCÜˆi˜�z Ð(Ô)Ü˜# rÔ*ˆÙÜ�)˜H˜:Ð%=Ð>Ô?ÙÜ" 4Ó(ˆÙÜ�%˜�zÐ!3Ð4Ô5ÙÜˆe�H�:˜U¤3 u£: ,¨dÐ3Ô4Ø×Ñ˜Õð ô$ ‹5€DØ€FØò  ˆØ�‰;˜dÒ"Ø�H‰H�T˜%‘[Ô!Ø�M‰M˜$Õð ô ˆ-œ˜F›�} DÐ)Ô*Ø€Mr   c                 óz  — t        | d¬«      }|syt        |d«      }|j                  dddi¬«      }|r$|j                  d	«      r|d	   j	                  «       nd
}|s%|j                  d«      }|r|j                  d¬«      }t        |«      }|j                  dddi¬«      }|r$|j                  d	«      r|d	   j	                  «       nd
}|s)t        j                  d|«      }|r|j                  d«      }t        j                  dt        |«      «      }	|	rU|	j                  d«      › d|	j                  d«      j                  d«      › d|	j                  d«      j                  d«      › �}|j                  dd¬«      }
|
s|j                  dd„ ¬«      }
|
s|j                  dd„ ¬«      }
|
rt        |
«      nd
}|||fS )Né   rK   )r   r   r   r-   ÚmetaÚnameÚArticleTitle)ÚattrsÚcontentr   Úh1Tr7   ÚPubDateu2   å�‘å¸ƒæ—¶é—´[ï¼š:]\s*(\d{4}[-/]\d{1,2}[-/]\d{1,2})rI   z!(\d{4})[-/](\d{1,2})[-/](\d{1,2})ú-é   é   ÚdivÚArticle_Conr0   c                 ó$   — | xr dt        | «      v S )NÚtrs_editor_view©Ústr©Úcs    r   ú<lambda>zfetch_detail.<locals>.<lambda>�   s   € ¸Ò8YÐ>OÔSVÐWXÓSYÐ>Y€ r   c                 ó$   — | xr dt        | «      v S )NÚContentPageBoxrj   rl   s    r   rn   zfetch_detail.<locals>.<lambda>�   s   € ¸Ò8XÐ>NÔRUÐVWÓRXÐ>X€ r   )r+   r   r;   r"   r   r=   r   ÚreÚsearchÚgrouprk   Úzfill)r(   rB   rD   Úmeta_tr   ra   Úmeta_drF   ÚmÚdmÚcontent_divÚcontent_htmls               r   Úfetch_detailr{   o   s¡  € Ü�c 2Ô&€DÙØä˜˜}Ó-€Dð �Y‰Y�v f¨nÐ%=ˆYÓ>€FÙ)/°F·J±J¸yÔ4IˆF�9Ñ×#Ñ#Ô%Èr€EÙØ�Y‰Y�t‹_ˆÙØ—K‘K d�KÓ+ˆEÜ˜Ó€Eð �Y‰Y�v f¨iÐ%8ˆYÓ9€FÙ-3¸¿
¹
À9Ô8M��yÑ!×'Ñ'Ô)ÐSU€IÙÜ�I‰IÐKÈTÓRˆÙØŸ™ ›
ˆIÜ	�‰Ð7¼¸Y»Ó	H€BÙ	Ø—x‘x “{�m 1 R§X¡X¨a£[×%6Ñ%6°qÓ%9Ð$:¸!¸B¿H¹HÀQ»K×<MÑ<MÈaÓ<PÐ;QÐRˆ	ð —)‘)˜E¨-�)Ó8€KÙØ—i‘i Ñ.Y�iÓZˆÙØ—i‘i Ñ.X�iÓYˆá'2”3�{Ô#¸€LØ�)˜\Ð)Ð)r   c                 ó0  ‡‡— | syt        | d«      }|j                  ddg«      D ]  }|j                  «        Œ |j                  d«      D ]  }|j                  d«       Œ |j                  dg«      D ]  }|j                  «        Œ d}|rŽd	}t	        |j                  d
dg«      «      D ]j  }|j
                  D �cg c]*  }|j                  €t        |«      j                  «       sŒ)|‘Œ, }}|sŒEt        d„ |D «       «      sŒX|j                  «        d} n |rŒŽˆfd„Š ‰|«      }t        |«      dk  �rg }g }	|j                  d«      D ]¼  }
|
j                  dd«      j                  «       }|sŒ&|j                  d«      rŒ8|j                  d«      r
t        |z   }n,|j                  d«      st        dz   |j                  d«      z   }|
j                  dd«      j                  «       }|	j!                  |rd|› d|› �nd|› �«       Œ¾ |	r"|j!                  d«       |j#                  |	«       g }|j                  d«      D ]½  }|j                  dd«      j                  «       Št%        ˆfd„dD «       «      sŒ8|j'                  d¬«      xs ‰j)                  d«      d   }‰j                  d«      r
t        ‰z   Šn,‰j                  d«      st        dz   ‰j                  d«      z   Š|j!                  d|› d‰› �«       Œ¿ |r"|j!                  d «       |j#                  |«       |r|d!z   dj+                  |«      z   }t-        j.                  d"d!|«      }t-        j.                  d#d|«      }t-        j.                  d$d|«      }|j                  «       S c c}w )%Nr   r-   ÚstyleÚscriptÚbrú
zo:pTFrf   Úpc              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)r�   N)r]   )Ú.0rm   s     r   ú	<genexpr>zclean_html.<locals>.<genexpr>¦   s   è ø€ Ò8¨a˜AŸF™F c�MÑ8ùs   ‚c                 óT  •— g }| j                   D ]ÿ  }|j                  €.t        |«      j                  «       }|sŒ+|j	                  |«       Œ=|j                  dk(  r|j	                  t        |«      «       Œg|j                  dv r+ ‰|«      }|j                  «       sŒŽ|j	                  |«       Œ |j                  dv r+ ‰|«      }|j                  «       sŒÇ|j	                  |«       ŒÙ|j                  d¬«      }|sŒî|j	                  |«       �Œ dj                  d„ |D «       «      S )NÚtable)r�   rf   ÚtdÚthr2   Úsectionra   Úh2Úh3Úh4Úh5Úh6)r5   ÚfontÚbÚiÚstrongÚemr4   ÚuÚsubÚsupÚsmallÚlabelTr7   ú

c              3   óB   K  — | ]  }|j                  «       sŒ|–— Œ y ­w©Nr7   )rƒ   r�   s     r   r„   z.clean_html.<locals>.extract.<locals>.<genexpr>Â   s   è ø€ Ò9 ¨q¯w©w­yœ1Ñ9ùs   ‚˜)Úchildrenr]   rk   r   rA   r=   Újoin)ÚelementÚpartsÚchildr&   ÚinnerÚextracts        €r   r¢   zclean_html.<locals>.extract«   sü   ø€ ØˆØ×%Ñ%ò 	'ˆEØ�z‰zÐ!Ü˜5“z×'Ñ'Ó)�ÚØ—L‘L Õ&Ø—‘˜wÒ&Ø—‘œS ›ZÕ(Ø—‘ð  Dñ Dá ›�Ø—;‘;•=Ø—L‘L Õ'Ø—‘ð  Eñ Eá ›�Ø—;‘;•=Ø—L‘L Õ'à—~‘~¨D�~Ó1�ÚØ—L‘L Ö&ð)	'ð* �{‰{Ñ9 eÔ9Ó9Ð9r   iô  ÚimgÚsrczdata:r8   r9   Úaltu	   [å›¾ç‰‡: r	   u	   [å›¾ç‰‡] u   [é¡µé�¢å›¾ç‰‡]r4   r6   c              3   ó\   •K  — | ]#  }‰j                  «       j                  |«      –— Œ% y ­wr›   )ÚlowerÚendswith)rƒ   Úextr6   s     €r   r„   zclean_html.<locals>.<genexpr>Ú   s"   øè ø€ Òt°#�4—:‘:“<×(Ñ(¨×-Ñtùs   ƒ),)z.pdfz.docz.docxz.xlsz.xlsxz.zipz.rarr7   éÿÿÿÿu	   [é™„ä»¶: u   [é¡µé�¢é™„ä»¶]r™   z\n{3,}z\s+\nz\n\s+)r   r<   Ú	decomposeÚreplace_withÚlistrœ   r]   rk   r   ÚallÚunwraprO   r"   r>   r?   r@   rA   rP   Úanyr=   Úsplitr�   rq   r•   )rz   rD   Útagr   Úchangedrm   ÚkidsÚresultÚextraÚimgsr£   r¤   r¥   Úattsr4   r&   r¢   r6   s                   @@r   Ú
clean_htmlr¹   •   s7  ù€ ÙØÜ˜ }Ó5€DØ�}‰}˜g xÐ0Ó1ò ˆØ�‰�ðà�m‰m˜DÓ!ò ˆØ
�‰˜Õðà�}‰}˜e˜WÓ%ò ˆØ�‰�ðð €GÙ
ØˆÜ˜Ÿ™ u¨c lÓ3Ó4ò 	ˆCØ"Ÿ|™|Ö[˜!°A·F±F°NÌ3ÈqË6Ï<É<Í>’AÐ[ˆDÐ[ÚœÑ8°4Ô8Õ8Ø—
‘
”Ø�Ùð	ò ô:ñ2 �T‹]€Fô ˆ6ƒ{�SÓØˆØˆØ—=‘= Ó'ò 	TˆCØ—'‘'˜% Ó$×*Ñ*Ó,ˆCÚ˜3Ÿ>™>¨'Õ2Ø—>‘> #Ô&Ü" S™.‘CØŸ™¨Ô/Ü" S™.¨3¯:©:°c«?Ñ:�CØ—g‘g˜e RÓ(×.Ñ.Ó0�Ø—‘¹˜i¨ u¨B¨s¨eÑ4À9ÈSÈEÐARÕSð	Tñ Ø�L‰LÐ)Ô*Ø�L‰L˜ÔàˆØ—‘˜sÓ#ò 	8ˆAØ—5‘5˜ Ó$×*Ñ*Ó,ˆDÜÓtÐ9sÔtÕtØ—z‘z¨�zÓ-ÒD°·±¸C³ÀÑ1D�Ø—?‘? 3Ô'Ü# d™?‘DØŸ™¨Ô0Ü# c™>¨D¯K©K¸Ó,<Ñ<�DØ—‘˜i¨ v¨R°¨vÐ6Õ7ð	8ñ Ø�L‰LÐ)Ô*Ø�L‰L˜ÔáØ˜f‘_ t§y¡y°Ó'7Ñ7ˆFä�V‰V�I˜v vÓ.€FÜ�V‰V�H˜d FÓ+€FÜ�V‰V�H˜d FÓ+€FØ�<‰<‹>ÐùòM \s   Â;*NÃ&Nc                 ó  — | st        d«       y d}d}| D ]Ú  }|j                  dd«      }|j                  dd«      }|j                  dd«      }	|j                  dd«      }
|r|	sŒPd	„ }d
 ||«      › d ||	«      › d ||	«      › d ||«      › d ||«      › d ||«      › d ||
«      › d ||«      › d ||«      › d�}	 t        j                  d|d|› �gddd¬«      }|j                  dk(  r|dz  }ŒÜ t        d|› dt        | «      › d�«       t        d«       d |«      › d�}	 t        j                  d||gddd¬«       y # t
        $ r}t        d|› �«       Y d }~�ŒJd }~ww xY w# t
        $ r}t        d|› �«       Y d }~y d }~ww xY w)Nu   æ— æ•°æ�®å�¯å…¥åº“z/mnt/data/search.dbr   r   r   r:   r(   r`   c                 ó.   — | r| j                  dd«      S dS )Nú'z''r   )r   )Úss    r   rn   z"push_to_searchdb.<locals>.<lambda>ü   s   € ±˜Ÿ	™	 # tÓ,€ °r€ r   z†INSERT OR IGNORE INTO gov_raw (site_name, source_url, page_url, title, publish_date, summary, content, group_name, industry) VALUES ('z', 'z');Úsqlite3zPRAGMA busy_timeout=15000; Té   )Úcapture_outputr&   r   rI   u   å…¥åº“å¤±è´¥: u   å…¥åº“å®Œæˆ�: r8   rL   u   å�Œæ­¥FTS...z“INSERT OR IGNORE INTO gov_search (rowid, title, site_name, summary) SELECT r.id, r.title, r.site_name, r.summary FROM gov_raw r WHERE r.site_name='zA' AND NOT EXISTS (SELECT 1 FROM gov_search s WHERE s.rowid=r.id);u   FTSå�Œæ­¥å¤±è´¥: )r   r"   Ú
subprocessÚrunÚ
returncoder'   rO   )rC   Úsource_nameÚ
group_nameÚindustryÚdb_pathÚinsertedrX   r   r:   r(   r`   ÚescÚsqlr)   r*   Úfts_sqls                   r   Úpush_to_searchdbrÌ   î   sè  € áÜÐ Ô!ØØ#€GØ€HØò &ˆØ—‘˜ "Ó%ˆØ�x‰x˜ Ó#ˆØ�h‰h�u˜bÓ!ˆØ—(‘(˜9 bÓ)ˆÙ™CØÙ9ˆðñ �KÓ Ð! ¡c¨#£h Z¨t±C¸³H°:ð >Ù�E“
ˆ|˜4¡ D£	˜{¨$©s°5«z¨lð ;Ù�G“ˆ~˜T¡# j£/Ð!2°$±s¸8³}°oð Fðð 	ð	&Ü—‘Ø˜GÐ'BÀ3À%Ð%HÐIØ#¨$¸ôˆAð �|‰|˜qÒ Ø˜A‘�øð/&ô4 ˆ.˜˜
 !¤C¨£J <¨tÐ4Ô5ô ˆÔð	ñ " +Ó.Ð/ð 0Jð	Jð ð%Ü�‰˜	 7¨GÐ4ÀTÐPTÐ^`Öaøô ò 	&Ü�.  Ð$×%Ò%ûð	&ûô ò %ÜÐ ˜sÐ#×$Ñ$ûð%ús0   Â=3EÄ%E' Å	E$ÅEÅE$Å'	FÅ0FÆFc                  ó  — dd l } | j                  d¬«      }|j                  dt        t        d¬«       |j                  ddd	¬
«       |j                  «       }|j                  }t        d|› d|j                  › �«       t        |¬«      }t        dt        |«      › d�«       |j                  rY|d d D ]-  }t        d|d   › d|d   d d › �«       t        d|d   › �«       Œ/ t        dt        |«      › d�«       t        d«       y t        |«      D ]†  \  }}t        d|dz   › dt        |«      › d|d   d d › d�«       t        |d   «      \  }}}	t        |xs |d   «      |d<   |xs |d   |d<   |	rt        |	«      nd|d<   t!        j"                  d «       Œˆ t        d!t        |«      › d"�«       |D �
cg c]  }
|
j%                  d«      sŒ|
‘Œ }}
t        d#t        |«      › d$t        |«      t        |«      z
  › d�«       |d d% D ]_  }t        d|d   › d|d   d d › �«       t        d|d   › �«       t        d&t        |j%                  dd«      «      › d'�«       t        «        Œa |rt'        |«       t        d(«       y c c}
w ))Nr   u   å¹³å��åŒº-é€šçŸ¥å…¬å‘Šçˆ¬è™«)Údescriptionz--pagesu   çˆ¬å�–é¡µæ•°)ÚtypeÚdefaultÚhelpz	--dry-runÚ
store_trueu	   ä»…é¢„è§ˆ)ÚactionrÑ   u&   ðŸš€ çˆ¬è™«å�¯åŠ¨: pingba_tzgg, pages=z
, dry_run=)rS   u
   åˆ—è¡¨å…± rL   r   z  [r:   r	   r   é2   z  URL: r(   u
     ... å…± u   âœ… é¢„è§ˆå®Œæˆ�rI   r8   é(   z...r   r`   g333333Ó?u   
=== çˆ¬å�–å®Œæˆ�: u    æ�¡ ===u   å�«æ­£æ–‡: u    æ�¡ / ç©ºæ­£æ–‡: re   u
     æ­£æ–‡: z charsu   âœ… å…¨éƒ¨å®Œæˆ�)ÚargparseÚArgumentParserÚadd_argumentÚintÚDEFAULT_PAGESÚ
parse_argsrS   r   Údry_runrY   rO   r   Ú	enumerater{   r   r¹   ÚtimeÚsleepr"   rÌ   )rÖ   ÚparserÚargsrS   rT   rX   r‘   ÚdtÚddÚdcÚitÚvalids               r   Úmainrç      s¢  € ÛØ×$Ñ$Ð1OÐ$ÓP€FØ
×Ñ˜	¬´]ÈÐÔXØ
×Ñ˜¨L¸{ÐÔKØ×ÑÓ€DØ�J‰J€EÜÐ
0°°°zÀ$Ç,Á,ÀÐPÔQä Ô'€IÜˆ*”S˜“^Ð$ DÐ)Ô*à‡|‚|Ø˜b˜q�Mò 	+ˆDÜ�C˜˜V™�~ R¨¨W©°c°rÐ(:Ð';Ð<Ô=Ü�G˜D ™K˜=Ð)Õ*ð	+ô 	�
œ3˜y›>Ð*¨$Ð/Ô0ÜÐÔØä˜YÓ'ò ‰ˆˆ4Üˆc�!�A‘#��aœ˜I›Ð' r¨$¨w©-¸¸Ð*<Ð)=¸SÐAÔBÜ! $ u¡+Ó.‰
ˆˆB�Ü# BÒ$7¨$¨w©-Ó8ˆˆW‰ØÒ)˜T &™\ˆˆV‰Ù,.œ* Rœ.°BˆˆY‰Ü�
‰
�3�ðô Ð
œs 9›~Ð.¨hÐ7Ô8Ø#Ö9�B r§v¡v¨iÕ'8ŠRÐ9€EÐ9Üˆ+”c˜%“j�\Ð!3´C¸	³NÄSÈÃZÑ4OÐ3PÐPTÐUÔVØ�b�q�	ò ˆÜ��D˜‘L�>  D¨¡M°#°2Ð$6Ð#7Ð8Ô9Ü�˜˜U™�}Ð%Ô&Ü�
œ3˜tŸx™x¨	°2Ó6Ó7Ð8¸Ð?Ô@Ü�ð	ñ Ü˜Ô#ÜÐÕùò :s   Æ8JÇJÚ__main__)r[   )Úpingba_tzggu	   è´µå·žçœ�u   æ”¿åºœå…¬å‘Š)Ú__doc__ÚsysÚosrq   Újsonr!   rÞ   rÁ   r   Úbs4r   r?   rN   rÚ   r#   ÚpackagesÚurllib3Údisable_warningsr   r   r+   rG   rY   r{   r¹   rÌ   rç   Ú__name__© r   r   ú<module>rô      s¬   ðñ÷ 5× 4× 4Ó 4Ý Ý à&€Ø€	Ø€ðGàOñ€ð 	× Ñ × Ñ × *Ñ *Ô ,ò'ò
%ó	òð. #ó ò<#*òLVðr CNØ,ó/%òd'ðT ˆzÒÙ…Fð r   