Ë
    ¸¬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mZ ddlm	Z	 ddl
m
Z
 dZdZdZd	d
iZdZdZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)u`  
å�—åº·åŒº-å…¬å‘Šå…¬ç¤º çˆ¬è™«
URL: http://www.nkjx.gov.cn/nkqxxgk/nk1404/list.shtml
CMS: UCAP CMS
åˆ—è¡¨: ul.newsList > li > a[href] + span.time
åˆ†é¡µ: list.shtml â†’ list_2.shtml â†’ list_3.shtml ... (198é¡µ, 20æ�¡/é¡µ)
è¯¦æƒ…: div#zoomcon > UCAPCONTENT > p/table
æ—¥æœŸ: <meta name="PubDate" content="..."/>
é™„ä»¶: a[href] å�« .pdf/.doc/.xls/.zip
é    N)ÚBeautifulSoup)Úurljoin)Údatetimez0http://www.nkjx.gov.cn/nkqxxgk/nk1404/list.shtmlu   å�—åº·åŒº-å…¬å‘Šå…¬ç¤ºu   æ±Ÿè¥¿z
User-AgentzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36é   g      ð?z/root/search.dbc                 ó@   — t        d| › �t        j                  ¬«       y )Nz
  [DEBUG] )Úfile)ÚprintÚsysÚstderr)Úmsgs    ú$/root/gov_crawler/crawl_nkjx_tzgg.pyÚdebugr      s   € Ü	ˆJ�s�eÐ
¤3§:¡:Ö.ó    c           	      óÊ   — t        j                  d| «      }|rK|j                  d«      › dt        |j                  d«      «      d›dt        |j                  d«      «      d›�S y)Nu'   (\d{4})[-/å¹´](\d{1,2})[-/æœˆ](\d{1,2})é   ú-é   Ú02dé   Ú )ÚreÚsearchÚgroupÚint)ÚtextÚms     r   Ú
parse_dater   !   sV   € Ü
�	‰	Ð<¸dÓC€AÙØ—'‘'˜!“*�˜Qœs 1§7¡7¨1£:›¨sÐ3°1´S¸¿¹À»³_ÀSÐ4IÐJÐJØr   c                 ó@  — t        d«      D ]Q  }	 t        j                  | t        t        ¬«      }d|_        |j                  dk(  rt        |j                  d«      c S ŒS y # t        $ r3}t        d|dz   › d|› �«       t        j                  d	«       Y d }~ŒŒd }~ww xY w)
Nr   )ÚheadersÚtimeoutzutf-8éÈ   zhtml.parseru     è¯·æ±‚å¤±è´¥ (é‡�è¯• r   z/3): r   )ÚrangeÚrequestsÚgetÚHEADERSÚTIMEOUTÚencodingÚstatus_coder   r   Ú	Exceptionr   ÚtimeÚsleep)ÚurlÚretryÚrespÚes       r   Úget_soupr0   '   s•   € Ü�q“ò ˆð	Ü—<‘< ¬W¼gÔFˆDØ#ˆDŒMØ×Ñ 3Ò&Ü$ T§Y¡Y°Ó>Ò>ð 'ð	ð øô ò 	ÜÐ+¨E°!©G¨9°E¸!¸Ð=Ô>Ü�J‰J�q�M‰Mûð	ús   �AA!Á!	BÁ*)BÂBc                 óB  — | dk(  rt         }nd| › d�}t        |«      }|sg S g }|j                  dd¬«      }|s|j                  dd¬«      }|st        d«       g S |j	                  d	d
¬«      D ]®  }|j                  d«      }|r|j                  d«      sŒ(t        t         |d   «      }|j                  dd«      xs |j                  j                  «       }|j                  dd¬«      }	|	r|	j                  j                  «       nd}
|j                  |||
dœ«       Œ° |S )Nr   z+http://www.nkjx.gov.cn/nkqxxgk/nk1404/list_z.shtmlÚulÚnewsList©Úclass_ÚpageListu     æœªæ‰¾åˆ°åˆ—è¡¨ ulÚliF©Ú	recursiveÚaÚhrefÚtitler   Úspanr*   )r<   r,   Údate)
ÚBASE_URLr0   Úfindr   Úfind_allr$   r   r   ÚstripÚappend)Úpage_numr,   ÚsoupÚitemsr2   r7   r:   r;   r<   Ú	date_spanÚdate_strs              r   Úfetch_list_pagerI   3   s  € Ø�1‚}Ü‰à;¸H¸:ÀVÐLˆÜ�C‹=€DÙØˆ	à€EØ	�‰�4 
ˆÓ	+€BÙà�Y‰Y�t JˆYÓ/ˆÙÜÐ$Ô&Øˆ	à�k‰k˜$¨%ˆkÓ0ò 	FˆØ�G‰G�C‹LˆÙ˜Ÿ™˜fœØÜ”x  6¡Ó+ˆØ—‘�g˜rÓ"Ò4 a§f¡f§l¡l£nˆà—G‘G˜F¨6�GÓ2ˆ	Ù-6�9—>‘>×'Ñ'Ô)¸BˆØ�‰˜u¨T¸8ÑDÕEð	Fð €Lr   c                 ó¼   — | j                  d«      }|D ]F  }|j                  xs d}t        j                  d|«      }|sŒ,t	        |j                  d«      «      c S  y)uG   ä»Ž createPageHTML('page_div',10, 1,'list','shtml',198) æ��å�–æ€»é¡µæ•°Úscriptr   zBcreatePageHTML\([^,]+,\s*(\d+),\s*\d+,\s*[^,]+,\s*[^,]+,\s*(\d+)\)r   r   )rA   Ústringr   r   r   r   )rE   ÚscriptsÚsr   r   s        r   Úget_total_pagesrO   R   sX   € à�m‰m˜HÓ%€GØò #ˆØ�x‰xŠ~˜2ˆÜ�I‰IÐ[Ð]aÓbˆÚÜ�q—w‘w˜q“z“?Ò"ð	#ð
 r   c           
      ó,  — g }g }| j                   D �]­  }|j                  s?t        |«      j                  «       }|r#t	        d„ |D «       «      s|j                  |«       ŒO|j                  j                  «       }|dk(  �rDt        d„ |j                  d¬«      D «       «      }|rã|j                   D ]Ò  }|j                  s?t        |«      j                  «       }|r#t	        d„ |D «       «      s|j                  |«       ŒN|j                  dk(  r|j                  t        |«      «       Œx|j                  dv r'|j                  d	¬
«      }|sŒ›|j                  |«       Œ­|j                  d	¬
«      }|sŒÂ|j                  |«       ŒÔ �Œv|j                  d	¬
«      }	|	s�ŒŒt	        d„ |	D «       «      r�Œ |j                  |	«       �Œ³|dk(  r|j                  t        |«      «       �ŒÔ|dk(  rL|j                  dd«      }
|j                  dd«      }|
s�Œ|j                  d|› dt        d|
«      › d�«       �Œ%|dv r)|j                  d	¬
«      }	|	s�Œ?|j                  |	«       �ŒR|dk(  r�ŒY|dk(  r)|j                  d	¬
«      }	|	s�Œt|j                  |	«       �Œ‡|j                  d	¬
«      }	|	s�Œ�|j                  |	«       �Œ° | j                  dd	¬«      D ]j  }|d   }|j                  j                  «       }t        j                  d|j                  «       «      sŒGt        d|«      }|j                  d|› d|› d�«       Œl t        «       }g }|D ].  }|dd }||vsŒ|j!                  |«       |j                  |«       Œ0 dj#                  |«      }||fS )uO   è§£æž� UCAPCONTENT å†…çš„å†…å®¹ï¼Œæ��å�–æ–‡æœ¬æ®µè�½ã€�è¡¨æ ¼ã€�å›¾ç‰‡ã€�é™„ä»¶c              3   ó$   K  — | ]  }|d v –— Œ
 y­w©u    
	ã€€N© ©Ú.0Úcs     r   ú	<genexpr>z%parse_ucap_content.<locals>.<genexpr>d   s   è ø€ ÒC¸  _Ô 4ÑCùó   ‚Úpc              3   ó8   K  — | ]  }|j                   d v –— Œ y­w))ÚtableÚdivr2   ÚolN)ÚnamerT   s     r   rW   z%parse_ucap_content.<locals>.<genexpr>l   s   è ø€ ÒlÀq˜AŸF™FÐ&BÔBÑlùó   ‚Fr8   c              3   ó$   K  — | ]  }|d v –— Œ
 y­wrR   rS   rT   s     r   rW   z%parse_ucap_content.<locals>.<genexpr>q   s   è ø€ Ò(IÀ!¨¨oÔ)=Ñ(IùrX   r[   )rY   r\   T©rB   c              3   ó$   K  — | ]  }|d v –— Œ
 y­w)u
    
	ã€€ Â NrS   rT   s     r   rW   z%parse_ucap_content.<locals>.<genexpr>€   s   è ø€ Ò"JÀ 1Ð(<Ô#<Ñ"JùrX   ÚimgÚsrcr   Úaltz![z](zhttp://www.nkjx.gov.cnú))r2   r]   Úbrr\   r:   )r;   r;   z3\.(pdf|doc|docx|xls|xlsx|zip|rar|ceb|ofd|ppt|pptx)$ú[Néd   ú

)Úchildrenr^   ÚstrrB   ÚallrC   ÚlowerÚanyrA   Úget_textr$   r   r   r   r   ÚsetÚaddÚjoin)Úcon_txtÚpartsÚattachmentsÚchildr   ÚtagÚ	has_blockÚsubÚtÚtxtrd   re   r:   r;   Úfull_urlÚseenÚunique_partsrY   ÚkeyÚcontents                       r   Úparse_ucap_contentr‚   \   s$  € à€EØ€Kà×!Ñ!ó 6"ˆØ�zŠzÜ�u“:×#Ñ#Ó%ˆDÙœCÑC¸dÔCÔCØ—‘˜TÔ"Øà�j‰j×ÑÓ ˆà�#‹:äÑlÈEÏNÉNÐejÈNÓLkÔlÓlˆIÙØ Ÿ>™>ò ,�CØŸ8š8Ü ›HŸN™NÓ,˜Ù¤SÑ(IÀqÔ(IÔ%IØ!ŸL™L¨œOØ Ø—x‘x 7Ò*ØŸ™¤S¨£XÕ.ØŸ™ \Ñ1ØŸL™L¨t˜LÓ4˜ÚØ!ŸL™L¨�OàŸL™L¨t˜LÓ4˜ÚØ!ŸL™L¨�Oò,ð" —n‘n¨4�nÓ0�ÛœsÑ"JÀcÔ"JÖJØ—L‘L Ö%à�GŠ^Ø�L‰Lœ˜U›Ö$Ø�EŠ\Ø—)‘)˜E 2Ó&ˆCØ—)‘)˜E 2Ó&ˆCÛØ—‘˜r #  b¬Ð1IÈ3Ó)OÐ(PÐPQÐRÖSØ�LÑ Ø—.‘. t�.Ó,ˆCÛØ—‘˜SÖ!Ø�DŠ[ÙØ�EŠ\Ø—.‘. t�.Ó,ˆCÛØ—‘˜SÖ!à—.‘. t�.Ó,ˆCÛØ—‘˜SÖ!ðm6"ðr ×Ñ˜c¨ÐÓ-ò 8ˆØ�‰yˆØ�v‰v�|‰|‹~ˆÜ�9‰9ÐKÈTÏZÉZË\ÕZÜÐ7¸Ó>ˆHØ×Ñ  4 &¨¨8¨*°AÐ6Õ7ð8ô ‹5€DØ€LØò #ˆØ��ˆgˆØ�dŠ?Ø�H‰H�SŒMØ×Ñ Õ"ð	#ð �k‰k˜,Ó'€GØ�KÐÐr   c                 ó  — g }g }| j                  d«      }|r|j                  j                  «       nd}|s'| j                  dd¬«      }|r|j                  d¬«      }|s;| j                  dd	d
i¬«      }|r$|j	                  d«      r|d   j                  «       }|sR| j                  d«      }|r?|j                  j                  «       }t        j                  dd|«      j                  «       }d}| j                  dd¬«      }	|	r*|	j                  dd¬«      }
|
rt        |
j                  «      }|s6| j                  dd	di¬«      }|r|j	                  d«      rt        |d   «      }| j                  dd¬«      }|rt|j                  d«      }|r1t        |«      \  }}|j                  |«       |j                  |«       n0t        |«      \  }}|j                  |«       |j                  |«       dj                  d„ |D «       «      }||||fS )NÚ	ucaptitler   Úh1zarticle-titler4   Tra   Úmetar^   ÚArticleTitle)Úattrsr�   r<   u    \s*\|\s*å�—åº·åŒºä¿¡æ�¯å…¬å¼€.*$ÚddÚscrqr\   zdisplay-blockÚPubDateÚzoomcon)ÚidÚucapcontentrj   c              3   ó&   K  — | ]	  }|sŒ|–— Œ y ­w)NrS   )rU   rY   s     r   rW   z"extract_content.<locals>.<genexpr>ã   s   è ø€ Ò0 ªaœ!Ñ0ùs   ‚Š)r@   r   rB   rp   r$   r   rz   r   r‚   rC   Úextendrs   )rE   ru   rv   Ú
ucap_titler<   r…   r†   r{   Úpub_dater‰   r\   Ú	meta_dateÚzoomÚucapr�   Úattachs                   r   Úextract_contentr—   ­   sì  € Ø€EØ€Kð —‘˜;Ó'€JÙ'1ˆJ�O‰O×!Ñ!Ô#°r€Eñ Ø�Y‰Y�t OˆYÓ4ˆÙØ—K‘K d�KÓ+ˆEñ Ø�y‰y˜¨°Ð'?ˆyÓ@ˆÙ�D—H‘H˜YÔ'Ø˜‘O×)Ñ)Ó+ˆEñ Ø�I‰I�gÓˆÙØ—F‘F—L‘L“NˆEÜ—F‘FÐ>ÀÀEÓJ×PÑPÓRˆEð €HØ	�‰�4 ˆÓ	'€BÙ	Ø�g‰g�e OˆgÓ4ˆÙÜ! #§(¡(Ó+ˆHñ Ø—I‘I˜f¨V°YÐ,?�IÓ@ˆ	Ù˜Ÿ™ yÔ1Ü! )¨IÑ"6Ó7ˆHà�9‰9�U˜yˆ9Ó)€DÙØ�y‰y˜Ó'ˆÙÜ0°Ó6‰OˆG�VØ�L‰L˜Ô!Ø×Ñ˜vÕ&ô 1°Ó6‰OˆG�VØ�L‰L˜Ô!Ø×Ñ˜vÔ&à�k‰kÑ0 UÔ0Ó0€GØ�'˜8 [Ð0Ð0r   c                  óÚ   — dd l } | j                  t        «      }|j                  «       }|j	                  d«       |j	                  d«       |j                  «        |j                  «        y )Nr   aK  CREATE TABLE IF NOT EXISTS gov_raw (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        page_url TEXT,
        title TEXT,
        content TEXT,
        publish_date TEXT,
        site_name TEXT,
        summary TEXT,
        attachments TEXT,
        date_rank TEXT,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )zSCREATE INDEX IF NOT EXISTS idx_gov_raw_url 
        ON gov_raw(page_url, site_name))Úsqlite3ÚconnectÚDB_PATHÚcursorÚexecuteÚcommitÚclose)r™   ÚconnrV   s      r   Úinit_dbr¡   æ   sT   € ÛØ�?‰?œ7Ó#€DØ�‰‹€AØ‡I�Ið 	ô 
ð ‡I�Ið +ô ,à‡K�K„MØ‡J�J…Lr   c                 ó¼  — dd l }|j                  t        «      }|j                  «       }d}| D ]a  }|d   r|d   d d nd}	 |j	                  d|d   |d   |d   |d   t
        ||d	   rd
j                  |d	   «      nd|d   xs df«       |dz  }Œc |j                  «        |j                  «        |S # t        $ r}t        d|d   › d|› �«       Y d }~Œ¨d }~ww xY w)Nr   r�   r!   r   z´INSERT OR REPLACE INTO gov_raw 
                (page_url, title, content, publish_date, site_name, summary, attachments, date_rank)
                VALUES (?, ?, ?, ?, ?, ?, ?, ?)r,   r<   r’   rv   ú
z
0000-00-00r   u     å…¥åº“å¤±è´¥: z - )r™   rš   r›   rœ   r�   Ú	SITE_NAMErs   r)   r   rž   rŸ   )rF   r™   r    rV   ÚimportedÚitemÚsummaryr/   s           r   Ú
save_to_dbr¨   û   s  € ÛØ�?‰?œ7Ó#€DØ�‰‹€AØ€HØò :ˆØ+/°	ª?�$�y‘/ $ 3Ñ'Àˆð	:Ø�I‰Ið 3ð �U‘Ø�W‘Ø�Y‘Ø�ZÑ ÜØØ26°}Ò2E�—	‘	˜$˜}Ñ-Ô.È2Ø�ZÑ Ò0 Lð	5ôð ˜‰M‰Hð:ð$ 	‡K�K„MØ‡J�J„LØ€Oøô	 ò 	:ÜÐ$ T¨%¡[ M°°Q°CÐ8×9Ñ9ûð	:ús   ÁAB4Â4	CÂ=CÃCc            
      óØ  — dd l } | j                  d¬«      }|j                  dt        dd¬«       |j                  dd	d
¬«       |j	                  «       }t        «        t        dt        › d�«       t        t        «      }|st        d«       y t        |«      }t        d|› �«       |j                  dk(  r|nt        |j                  |«      }t        d|› d�«       g }g }t        d|dz   «      D �]u  }t        d|› d|› d�«       t        |«      }	|	st        d|› d�«       Œ3|j                  t!        |	«      «       t        dt!        |	«      › d�«       t#        |	«      D �]  \  }
}t        dt!        |«      dz   › d|d   d d › d�«       t        |d   «      }|s,t        d «       |j                  |d   |d   d!|d"   g d#œ«       Œgt%        |«      \  }}}}|xs |d   }|xs |d"   }|j                  ||d   |||d#œ«       |r3t!        |j'                  d$«      «      }t        d%|› d&|rd'nd(› d)|› �«       nt        d*|rd'nd(› �«       t)        j*                  t,        «       �Œ �Œx t!        |«      }t/        d+„ |D «       «      }t/        d,„ |D «       «      }t/        d-„ |D «       «      t1        |d«      z  }t        d.t        › d/�«       t        d0|› d�«       t        |rd1|› d2||z  d3z  d4›d5�nd6«       t        d7|d4›�«       t        d8|› �«       |r$t        d9t/        |«      t!        |«      z  d4›�«       |j2                  st5        |«      }t        d:|› d�«       y t        d;«       y )<Nr   u   å�—åº·åŒº-å…¬å‘Šå…¬ç¤º çˆ¬è™«)Údescriptionz--pagesé   u   çˆ¬å�–é¡µæ•°, 0=å…¨éƒ¨)ÚtypeÚdefaultÚhelpz	--skip-dbÚ
store_trueu   è·³è¿‡å…¥åº“)Úactionr®   z===== u    çˆ¬å�– =====u   â�Œ æ— æ³•è®¿é—®é¦–é¡µu   æ€»é¡µæ•°: u   å°†çˆ¬å�–: u    é¡µr   u	   
--- ç¬¬ ú/u    é¡µ ---u     ç¬¬ u    é¡µæ— æ•°æ�®u     åˆ—è¡¨é¡¹: u    æ�¡z  [z] r<   é(   z...r,   u        âš ï¸� è¯¦æƒ…é¡µè¯·æ±‚å¤±è´¥r   r>   )r<   r,   r�   r’   rv   rj   z    seg=z
 | attach=ÚYESÚnoz | date=u       âš ï¸� ç©ºæ­£æ–‡ | attach=c              3   ó,   K  — | ]  }|d    sŒ	d–— Œ y­w)r�   r   NrS   ©rU   Úis     r   rW   zmain.<locals>.<genexpr>\  s   è ø€ Ò9˜!¨A¨i«L”AÑ9ùs   ‚
�c              3   ó8   K  — | ]  }t        |d    «      –— Œ y­w)rv   N)Úlenr¶   s     r   rW   zmain.<locals>.<genexpr>]  s   è ø€ Ò@°”s˜1˜]Ñ+×,Ñ@ùr_   c              3   ób   K  — | ]'  }|d    sŒ	t        |d    j                  d«      «      –— Œ) y­w)r�   rj   N)r¹   Úsplitr¶   s     r   rW   zmain.<locals>.<genexpr>^  s*   è ø€ ÒU°aÈÈ)Ë”#�a˜	‘l×(Ñ(¨Ó0×1ÑUùs   ‚
/�"/z
===== u    çˆ¬å�–å®Œæˆ� =====u   å…±çˆ¬å�–: u   æœ‰æ­£æ–‡: u    æ�¡ (ri   z.1fz%)u   æœ‰æ­£æ–‡: 0 æ�¡u   å¹³å�‡æ®µè�½æ•°: u   é™„ä»¶æ•°: u   é¡µå�‡æ�¡æ•°: u   å…¥åº“: u   å…¥åº“: å·²è·³è¿‡)ÚargparseÚArgumentParserÚadd_argumentr   Ú
parse_argsr¡   r	   r¤   r0   r?   rO   ÚpagesÚminr"   rI   rC   r¹   Ú	enumerater—   r»   r*   r+   ÚDELAYÚsumÚmaxÚskip_dbr¨   )r¼   ÚparserÚargsrE   Útotal_pagesÚpages_to_fetchÚ	all_itemsÚpage_items_countÚpagerF   Úidxr¦   Údetail_soupr<   r�   r’   rv   Úfinal_titleÚ
final_dateÚ	seg_countÚtotalÚ	with_bodyÚtotal_attachÚavg_segr¥   s                            r   Úmainr×     sž  € ÛØ×$Ñ$Ð1PÐ$ÓQ€FØ
×Ñ˜	¬°QÐ=UÐÔVØ
×Ñ˜¨L¸~ÐÔNØ×ÑÓ€Dä„Iä	ˆF”9�+˜]Ð
+Ô,Ü”HÓ€DÙÜÐ&Ô'Øä! $Ó'€KÜ	ˆK˜�}Ð
%Ô&à$(§J¡J°!¢O‘[¼¸T¿Z¹ZÈÓ9U€NÜ	ˆK˜Ð' tÐ
,Ô-à€IØÐä�a˜¨!Ñ+Ó,ó +ˆÜ�
˜4˜&  .Ð!1°Ð:Ô;Ü Ó%ˆÙÜ�F˜4˜& Ð.Ô/Øà×Ñ¤ E£
Ô+Ü�œc %›j˜\¨Ð.Ô/ä" 5Ó)ó !	‰IˆC�Ü�Cœ˜I› qÑ(Ð)¨¨D°©M¸#¸2Ð,>Ð+?¸sÐCÔDä" 4¨¡;Ó/ˆKÙÜÐ8Ô:Ø× Ñ Ø! '™]Ø ™;Ø!Ø $ V¡Ø#%ñ"ô ð ä4CÀKÓ4PÑ1ˆE�7˜H kØÒ0 4¨¡=ˆKØ!Ò1 T¨&¡\ˆJà×ÑØ$Ø˜E‘{Ø"Ø&Ø*ñô ñ Ü §¡¨fÓ 5Ó6�	Ü˜  ¨:¹{±eÐPTÐ5UÐU]Ð^hÐ]iÐjÕkäÐ6Á±uÐQUÐ6VÐWÔXä�J‰J”uÖòC!	ð+ôZ �	‹N€EÜÑ9˜yÔ9Ó9€IÜÑ@°iÔ@Ó@€LÜÑU¸9ÔUÓUÔX[Ð\eÐghÓXiÑi€Gä	ˆH”Y�KÐ2Ð
3Ô4Ü	ˆK˜�w˜dÐ
#Ô$Ü	ÉˆK˜	�{ &¨°5©¸Ñ)<¸SÐ(AÀÑ
DÐSeÔfÜ	Ð˜g c˜]Ð
+Ô,Ü	ˆK˜�~Ð
&Ô'ÙÜ�œsÐ#3Ó4´SÐ9IÓ5JÑJÈ3ÐOÐPÔQà�<Š<Ü˜iÓ(ˆÜ�˜˜
 $Ð'Õ(äÐ!Õ"r   Ú__main__)Ú__doc__r   r
   r*   Úosr#   Úbs4r   Úurllib.parser   r   r?   r¤   ÚGROUPr%   r&   rÃ   r›   r   r   r0   rI   rO   r‚   r—   r¡   r¨   r×   Ú__name__rS   r   r   ú<module>rß      s™   ðñ	÷ × Û Ý Ý  Ý à=€Ø$€	Ø€àð  Dð€ð €Ø€à
€ò/òò
òò>òO òb71òrò*ò6V#ðp ˆzÒÙ…Fð r   