Ë
    [�Tj(0  ã                   ó¾   — 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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)un  
å®�å›½å¸‚äººæ°‘æ”¿åºœ-é€šçŸ¥å…¬å‘Š çˆ¬è™«
URL: http://www.ningguo.gov.cn/News/showList/833/page_1.html
CMS: è‡ªå®šä¹‰ASP.NET MVC
åˆ—è¡¨: div.m-listrg > li > a[href] + span(æ—¥æœŸ)
åˆ†é¡µ: /News/showList/833/page_N.html (15æ�¡/é¡µ)
è¯¦æƒ…: div.m-dttexts.j-fontContent æ­£æ–‡
æ—¥æœŸ: div.m-pgpdbox1 "å�‘å¸ƒæ—¶é—´ï¼šYYYY-MM-DD"
é™„ä»¶: a[href] å�« .pdf/.doc/.xls/.zip
é    N)ÚBeautifulSoup)Úurljoinz7http://www.ningguo.gov.cn/News/showList/833/page_1.htmlu   å®�å›½å¸‚-é€šçŸ¥å…¬å‘Š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/crawl_ningguo_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éÈ   Úlxmlu     è¯·æ±‚å¤±è´¥ (é‡�è¯• 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°Ó7Ò7ð 'ð	ð øô ò 	ÜÐ+¨E°!©G¨9°E¸!¸Ð=Ô>Ü�J‰J�q�M‰Mûð	ús   �AA!Á!	BÁ*)BÂBc                 óÆ  — | j                  d«      }|syg }t        |«      D ]¨  \  }}|j                  ddg«      }|D �cg c]$  }|j                  d¬«      j                  dd«      ‘Œ& }}|j	                  d	d
j                  |«      z   dz   «       |dk(  sŒtd	d
j                  dgt        |«      z  «      z   dz   }|j	                  |«       Œª dj                  |«      S c c}w )z*Convert HTML table to Markdown pipe table.Útrr   ÚtdÚthT©Ústripú
ú z| z | z |r   ú---)Úfind_allÚ	enumerateÚget_textÚreplaceÚappendÚjoinÚlen)	ÚtableÚrowsÚmd_rowsÚrir2   ÚcellsÚcellÚrowÚseps	            r   Útable_to_markdownrI   3   sÚ   € à�>‰>˜$Ó€DÙØà€GÜ˜D“/ò  ‰ˆˆBØ—‘˜T 4˜LÓ)ˆØHMÖNÀˆt�}‰} 4ˆ}Ó(×0Ñ0°°sÕ;ÐNˆÐNØ�‰�t˜eŸj™j¨›oÑ-°Ñ4Ô5Ø�‹7à˜Ÿ™ U G¬c°%«jÑ$8Ó9Ñ9¸DÑ@ˆCØ�N‰N˜3Õð ð �9‰9�WÓÐùò Os   ¿)Cc           
      óú  — g }g }| j                  dd¬«      }|sdg fS t        |j                  «      }|D �cg c]  }|j                  sŒ|‘Œ }}g }|j                  D ]<  }|j                  rŒt	        |«      j                  «       }	|	sŒ,|j                  |	«       Œ> |r|j                  |«       |D �]ß  }|j                  j                  «       }
|
dk(  �r:|j                  dd¬«      }|rè|j                  D ]×  }|j                  s?t	        |«      j                  «       }	|	r#t        d	„ |	D «       «      s|j                  |	«       ŒN|j                  j                  «       }|dk(  r|j                  t        |«      «       Œˆ|d
k(  r|j                  d«       ŒŸ|j                  d¬«      }	|	sŒ´t        d„ |	D «       «      rŒÇ|j                  |	«       ŒÙ �Œ!|j                  d¬«      }|s�Œ7t        d„ |D «       «      r�ŒK|j                  |«       �Œ^|
dk(  r|j                  t        |«      «       �Œ|
d
k(  r|j                  d«       �Œ—|
dk(  r|j                  d«       �Œ¯|
dk(  rL|j                  dd«      }|j                  dd«      }|s�ŒÜ|j                  d|› dt        d|«      › d�«       �Œ |
dv r)|j                  d¬«      }|s�Œ|j                  |«       �Œ-|
dk(  r=|j                  d¬«      }|s�ŒHt        d„ |D «       «      r�Œ\|j                  |«       �Œo|
dv r=|j                  d¬«      }|s�Œ‰t        d„ |D «       «      r�Œ�|j                  |«       �Œ°|
d
k(  r|j                  d«       �ŒÈ|
dk(  s�ŒÏ|j                  d«       �Œâ |j                  dd¬«      D ]j  }|d   }|j                  j                  «       }t!        j"                  d|j                  «       «      sŒGt        d|«      }|j                  d |› d|› d�«       Œl g }|D ]#  }|dk(  r|r	|d!   dk(  rŒ|j                  |«       Œ% d"j%                  |«      }t!        j&                  d#d"|«      }|j                  «       |fS c c}w )$zˆParse content from m-dttexts div, handling tables and br separators.
    Uses .contents (direct children in order) to maintain sequence.Údivz	m-dttexts©Úclass_r   ÚprA   F©Ú	recursivec              3   ó$   K  — | ]  }|d v –— Œ
 y­w)u    
	ã€€N© ©Ú.0Úcs     r   ú	<genexpr>z parse_content.<locals>.<genexpr>j   s   è ø€ Ò(IÀ!¨¨oÔ)=Ñ(Iùó   ‚ÚbrTr5   c              3   ó$   K  — | ]  }|d v –— Œ
 y­w©u
    
	ã€€ Â NrR   rS   s     r   rV   z parse_content.<locals>.<genexpr>t   s   è ø€ Ò(NÀq¨Ð.BÔ)BÑ(NùrW   c              3   ó$   K  — | ]  }|d v –— Œ
 y­wrZ   rR   rS   s     r   rV   z parse_content.<locals>.<genexpr>x   s   è ø€ Ò"JÀ 1Ð(<Ô#<Ñ"JùrW   Úhrr9   ÚimgÚsrcÚaltz![z](zhttp://www.ningguo.gov.cnú))ÚulÚolc              3   ó$   K  — | ]  }|d v –— Œ
 y­wrZ   rR   rS   s     r   rV   z parse_content.<locals>.<genexpr>Œ   ó   è ø€ ÒF¸Q˜qÐ$8Ô8ÑFùrW   )ÚspanÚstrongÚemÚbÚiÚuÚac              3   ó$   K  — | ]  }|d v –— Œ
 y­wrZ   rR   rS   s     r   rV   z parse_content.<locals>.<genexpr>�   rd   rW   rk   )Úhrefrm   z3\.(pdf|doc|docx|xls|xlsx|zip|rar|ceb|ofd|ppt|pptx)$ú[éÿÿÿÿú

z\n{3,})ÚfindÚlistÚchildrenÚnameÚstrr6   r>   ÚextendÚlowerr:   ÚallrI   r<   r$   r   r   r   r   r?   Úsub)ÚsoupÚpartsÚattachmentsÚcontent_divÚall_elementsÚchÚnamed_elementsÚ
text_partsÚchildÚtÚtagÚinner_tablesry   ÚsnÚtxtr^   r_   rk   rm   r   Úfull_urlÚcleanedrN   Úcontents                           r   Úparse_contentr‹   F   sõ  € ð €EØ€Kà—)‘)˜E¨+�)Ó6€KÙØ�2ˆvˆô ˜×,Ñ,Ó-€Là#/Ö;˜R°2·7³7’bÐ;€NÐ;à€JØ×%Ñ%ò %ˆØ�z‹zÜ�E“
× Ñ Ó"ˆAÚØ×!Ñ! !Õ$ð	%ñ Ø�‰�ZÔ àó 6 ˆØ�j‰j×ÑÓ ˆà�#‹:à Ÿ>™>¨'¸U˜>ÓCˆLáØ Ÿ>™>ò ,�CØŸ8š8Ü ›HŸN™NÓ,˜Ù¤SÑ(IÀqÔ(IÔ%IØ!ŸL™L¨œOØ ØŸ™Ÿ™Ó)�BØ˜W’}ØŸ™Ô%6°sÓ%;Õ<Ø˜tšØŸ™ RÕ(àŸL™L¨t˜LÓ4˜Ú¤SÑ(NÈAÔ(NÕ%NØ!ŸL™L¨�Oò,ð  —n‘n¨4�nÓ0�ÛœsÑ"JÀcÔ"JÖJØ—L‘L Ö%à�GŠ^Ø�L‰LÔ*¨5Ó1Ö2Ø�DŠ[Ø�L‰L˜ÖØ�DŠ[Ø�L‰L˜ÖØ�EŠ\Ø—)‘)˜E 2Ó&ˆCØ—)‘)˜E 2Ó&ˆCÛØ—‘˜r #  b¬Ð1LÈcÓ)RÐ(SÐSTÐUÖVØ�LÑ Ø—.‘. t�.Ó,ˆCÛØ—‘˜SÖ!Ø�EŠ\Ø—.‘. t�.Ó,ˆCÛœ3ÑFÀ#ÔFÖFØ—‘˜SÖ!ØÐ@Ñ@Ø—.‘. t�.Ó,ˆCÛœ3ÑFÀ#ÔFÖFØ—‘˜SÖ!Ø�DŠ[Ø�L‰L˜ÖØ�DŒ[Ø�L‰L˜Öðm6 ðr ×!Ñ! #¨DÐ!Ó1ò 8ˆØ�‰yˆØ�v‰v�|‰|‹~ˆÜ�9‰9ÐKÈTÏZÉZË\ÕZÜÐ:¸DÓAˆHØ×Ñ  4 &¨¨8¨*°AÐ6Õ7ð8ð €GØò ˆØ�Š7‘w 7¨2¡;°"Ò#4ØØ�‰�qÕðð
 �k‰k˜'Ó"€GÜ�f‰f�Y ¨Ó0€GØ�=‰=‹?˜KÐ'Ð'ùòk <s   ·Q8Á	Q8c                 ó^  — | dk(  rt         }nd| › d�}t        |«      }|sg S g }|j                  dd¬«      }|sg S |j                  dd¬«      }|r|j                  d«      }|r|}n|}n|}|j                  d	d
¬«      D ]¬  }|j                  d«      }	|	r|	j	                  d«      sŒ(t        t         |	d   «      }
|	j	                  dd«      xs |	j                  j                  «       }|j                  d«      }|r|j                  j                  «       nd}|j                  ||
|dœ«       Œ® |S )Nr   z1http://www.ningguo.gov.cn/News/showList/833/page_z.htmlrK   zm-listrgrL   Úm_cglistra   ÚliFrO   rk   rm   Útitler   re   )r�   r,   Údate)	ÚBASE_URLr0   rq   r:   r$   r   r   r6   r>   )Úpage_numr,   rz   ÚitemsÚ	containerÚlist_divra   Úlist_containerrŽ   rk   rm   r�   Ú	date_spanÚdate_strs                 r   Úfetch_list_pager™   ª   s-  € Ø�1‚}Ü‰àAÀ(ÀÈ5ÐQˆÜ�C‹=€DÙØˆ	à€EØ—	‘	˜%¨
�	Ó3€IÙØˆ	ð �~‰~˜e¨Jˆ~Ó7€HÙØ�]‰]˜4Ó ˆÙØ‰Nà%‰Nà"ˆà×%Ñ% d°eÐ%Ó<ò FˆØ�G‰G�C‹LˆÙ˜Ÿ™˜fœØÜ”x  6¡Ó+ˆØ—‘�g˜rÓ"Ò4 a§f¡f§l¡l£nˆØ—G‘G˜F“Oˆ	Ù-6�9—>‘>×'Ñ'Ô)¸BˆØ�‰˜u¨T¸8ÑDÕEðFð €Lr   c                 óˆ  — d}d}| j                  d«      }|r|j                  j                  «       }|sR| j                  d«      }|r?|j                  j                  «       }t        j                  dd|«      j                  «       }| j                  dd¬«      }|rt        |j                  «      }t        | «      \  }}||||fS )Nr   Úh1r�   u   \s*[-â€“â€”|].*$rK   z
m-pgpdbox1rL   )rq   r   r6   r   ry   r   r‹   )rz   r�   Úpub_dater›   rƒ   ÚheaderrŠ   r|   s           r   Úextract_contentrž   Ï   s³   € Ø€EØ€Hð 
�‰�4‹€BÙ	Ø—‘—‘“ˆñ Ø�I‰I�gÓˆÙØ—F‘F—L‘L“NˆEÜ—F‘FÐ.°°EÓ:×@Ñ@ÓBˆEð �Y‰Y�u \ˆYÓ2€FÙÜ˜fŸk™kÓ*ˆô )¨Ó.Ñ€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    ÚconnrU   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œ   r|   r7   z
0000-00-00r   u     å…¥åº“å¤±è´¥: z - )r    r¡   r¢   r£   r¤   Ú	SITE_NAMEr?   r)   r   r¥   r¦   )r“   r    r§   rU   Ú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�«       |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 «       «      t+        |d«      z  }t        d,t        › d-�«       t        d.|› d�«       t        |rd/|› d0||z  d1z  d2›d3�nd4«       t        d5|d2›�«       t        d6|› �«       |r$t        d7t)        |«      t        |«      z  d2›�«       |j,                  s’dd l}|j1                  t2        «      }|j5                  «       }|j7                  d8t        f«       |j7                  d9t        f«       |j9                  «        |j;                  «        t=        |«      }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    é¡µr   u	   
--- ç¬¬ ú/u    é¡µ ---u     ç¬¬ u    é¡µæ— æ•°æ�®u     åˆ—è¡¨é¡¹: u    æ�¡z  [z] r�   é(   z...r,   u        âš ï¸� è¯¦æƒ…é¡µè¯·æ±‚å¤±è´¥r   r�   )r�   r,   rŠ   rœ   r|   rp   z    seg=z
 | attach=ÚYESÚnoz | date=u       âš ï¸� ç©ºæ­£æ–‡ | attach=c              3   ó,   K  — | ]  }|d    sŒ	d–— Œ y­w)rŠ   r   NrR   ©rT   ri   s     r   rV   zmain.<locals>.<genexpr>V  s   è ø€ Ò9˜!¨A¨i«L”AÑ9ùs   ‚
�c              3   ó8   K  — | ]  }t        |d    «      –— Œ y­w)r|   N)r@   r¼   s     r   rV   zmain.<locals>.<genexpr>W  s   è ø€ Ò@°”s˜1˜]Ñ+×,Ñ@ùs   ‚c              3   ób   K  — | ]'  }|d    sŒ	t        |d    j                  d«      «      –— Œ) y­w)rŠ   rp   N)r@   Úsplitr¼   s     r   rV   zmain.<locals>.<genexpr>X  s*   è ø€ ÒU°aÈÈ)Ë”#�a˜	‘l×(Ñ(¨Ó0×1ÑUùs   ‚
/�"/z
===== u    çˆ¬å�–å®Œæˆ� =====u   å…±çˆ¬å�–: u   æœ‰æ­£æ–‡: u    æ�¡ (éd   z.1fz%)u   æœ‰æ­£æ–‡: 0 æ�¡u   å¹³å�‡æ®µè�½æ•°: u   é™„ä»¶æ•°: u   é¡µå�‡æ�¡æ•°: zPDELETE FROM gov_search WHERE rowid IN (SELECT id FROM gov_raw WHERE site_name=?)z%DELETE FROM gov_raw WHERE site_name=?u   å…¥åº“: u   å…¥åº“: å·²è·³è¿‡)ÚargparseÚArgumentParserÚadd_argumentr   Ú
parse_argsr¨   r   rª   Úpagesr"   r™   r>   r@   r;   r0   rž   r¿   r*   r+   ÚDELAYÚsumÚmaxÚskip_dbr    r¡   r¢   r£   r¤   r¥   r¦   r®   )rÁ   ÚparserÚargsÚpages_to_fetchÚ	all_itemsÚpage_items_countÚpager“   Úidxr¬   Údetail_soupr�   rŠ   rœ   r|   Úfinal_titleÚ
final_dateÚ	seg_countÚtotalÚ	with_bodyÚtotal_attachÚavg_segr    r§   rU   r«   s                             r   ÚmainrÙ     s«  € ÛØ×$Ñ$Ð1PÐ$ÓQ€FØ
×Ñ˜	¬°QÐ=UÐÔVØ
×Ñ˜¨L¸~ÐÔNØ×ÑÓ€Dä„Iä	ˆF”9�+˜]Ð
+Ô,Ø—Z‘Z€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à�<Š<ãØ�‰œwÓ'ˆØ�K‰K‹MˆØ	�	‰	ÐdÔgpÐfrÔsØ	�	‰	Ð9¼I¸<ÔHØ�‰ŒØ�
‰
Œä˜iÓ(ˆÜ�˜˜
 $Ð'Õ(äÐ!Õ"r   Ú__main__)Ú__doc__r   r	   r*   Úosr#   Úbs4r   Úurllib.parser   r‘   rª   ÚGROUPr%   r&   rÆ   r¢   r   r   r0   rI   r‹   r™   rž   r¨   r®   rÙ   Ú__name__rR   r   r   ú<module>rá      s–   ðñ	÷ × Û Ý Ý  àD€Ø$€	Ø€àð  Dð€ð €Ø€à
€ò/òò
òò&b(òH#òJ1ò2ò*ò6W#ðr ˆzÒÙ…Fð r   