Ë
    ¸¬ujƒ7  ã                   ó  — 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ZdZdZdZdZd	Zd
dddœZdZ eej,                  «      D ]k  \  ZZej3                  d«      r	  eej7                  dd«      d   «      ZŒ4edk(  sŒ:edz    eej,                  «      k  sŒS	  eej,                  edz      «      ZŒm edk\  rendZd„ Zdd„Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%e&dk(  r e%«        yy# e$ r dZY ŒÊw xY w# e$ r Y Œ¯w xY w# e$ r Y Œºw xY w)uZ  
æ¢�å±±åŽ¿äººæ°‘æ”¿åºœ - é€šçŸ¥å…¬å‘Š (www.liangshan.gov.cn/col/col32050/index.html?number=LSA0601)
CMS: æ±‰ç½‘ TRS (åˆ—è¡¨ç”± /module/xxgk/subjectinfo.jsp åŠ¨æ€�æ¸²æŸ“ iframe)
åˆ—è¡¨: GET /module/xxgk/subjectinfo.jsp?currpage=N&standardXxgk=1
      div.zfxxgk_item > div.zfxxgk_zdgkc > ul > li > a[title] + b æ—¥æœŸ (14æ�¡/é¡µ, å…±1436é¡µ/20101æ�¡)
      âš ï¸� åˆ—è¡¨é¡µé�™æ€�HTMLæ— æ–‡ç« é“¾æŽ¥(å�ªæœ‰æ³•è§„ç½®é¡¶å�— bt-mod-wzpb-07 + xxgk iframe), å¿…é¡»èµ° subjectinfo.jsp API
è¯¦æƒ…: meta ArticleTitle/pubdate/contentSource é½�å…¨
      æ­£æ–‡ div.content4 (æ±‰ç½‘æ¨¡æ�¿, ContentStart/ContentEnd æ ‡è®°åŒ…è£¹, <p> é€�æ®µ + table ä¿�ç•™)
      é™„ä»¶ <a href=/module/download/downfile.jsp?showname=URLç¼–ç �ä¸­æ–‡å��&filename=xxx> + excel.png å›¾æ ‡
      å°¾éƒ¨å™ªå£°: content5(ç©º)/content6(ä¿¡æ�¯æ�¥æº�)/content7(æ‰“å�°å…³é—­) â†’ å�– content4 æˆªæ–­
é    N)ÚBeautifulSoupzhttp://www.liangshan.gov.cnz/module/xxgk/subjectinfo.jspu"   æ¢�å±±åŽ¿äººæ°‘æ”¿åºœ-é€šçŸ¥å…¬å‘Šu   å±±ä¸œzcrawl_liangshan_tzgg.pyz/mnt/data/search.dbzkMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zzh-CN,zh;q=0.9)z
User-AgentÚAcceptzAccept-Languageé   z--pages=ú=z--pagesc                 ó  — | syt        j                  | «      } | j                  dd«      j                  dd«      j                  dd«      j                  dd«      } t        j                  dd| «      } | j                  «       S )z;unescape entities + strip zero-width + collapse whitespace.Ú u   â€‹u   â€Œu   â€�u   ï»¿ú\s+ú )Úhtml_libÚunescapeÚreplaceÚreÚsubÚstrip)Úts    ú)/root/gov_crawler/crawl_liangshan_tzgg.pyÚclean_titler   ;   so   € áØÜ×Ñ˜!Ó€AØ	�	‰	�(˜BÓ×'Ñ'¨°"Ó5×=Ñ=¸hÈÓK×SÑSÐT\Ð^`Óa€AÜ
�‰ˆv�s˜AÓ€AØ�7‰7‹9Ðó    c                 ó   — dd l }d }t        |«      D ]O  }	 |xs |j                  | t        |¬«      }|j                  dk(  r|c S |}t        j                  d|dz   z  «       ŒQ t        |t
        «      r|‚|S # t
        $ r}|}Y d }~ŒAd }~ww xY w)Nr   )ÚheadersÚtimeoutéÈ   g      ø?r   )	ÚrequestsÚrangeÚgetÚHEADERSÚstatus_codeÚ	ExceptionÚtimeÚsleepÚ
isinstance)	ÚurlÚsessionr   Úretriesr   ÚlastÚiÚrÚes	            r   Úfetchr)   E   s—   € ÛØ€DÜ�7‹^ò "ˆð	ØÒ$˜H×)Ñ)¨#´wÈÐ)ÓPˆAØ�}‰} Ò#Ø’ØˆDô 	�
‰
�3˜!˜a™%‘=Õ!ð"ô �$œ	Ô"Øˆ
Ø€Køô ò 	Ø�Dûð	ús   –,A8ÁA8Á8	BÂBÂBc           
      ó8
  ‡‡‡‡— | sddg fS t        j                  dd| t         j                  ¬«      } t        j                  dd| t         j                  t         j                  z  ¬«      } t        j                  dd| t         j                  t         j                  z  ¬«      } t        j                  dd| t         j                  ¬«      } t        rQ	 t	        | d«      }|j                  d	«      D ]%  }d
D ]  }|j                  j                  |d«       Œ  Œ' t        |«      } t        j                  | «      } | }t        j                  dd|t         j                  ¬«      }g Ši Šˆˆˆfd„}t        j                  d||t         j                  t         j                  z  ¬«      }g Šˆfd„}t        j                  d||t         j                  t         j                  z  ¬«      }t        j                  d| t         j                  «      rdnd}t        j                  dd|t         j                  ¬«      }t        j                  dd|t         j                  ¬«      }t        j                  dd|t         j                  ¬«      }g }	|j                  d«      D ]ï  }
|
j                  «       }|sŒt        j                  dd|«      }t        j                  |«      }|j                  dd«      j                  dd«      }t        j                  dd|«      }|sŒ~‰j!                  «       D ]  \  }}|j                  ||«      }Œ t#        ‰«      D ]  \  }}|j                  d|› d�|«      }Œ |	j%                  |j                  «       «       Œñ dj'                  |	«      }‰j!                  «       D ]  \  }}|j                  ||«      }Œ t#        ‰«      D ]  \  }}|j                  d|› d�|«      }Œ t        j                  d d|«      }t        j                  d!d|«      }t        j                  |«      }t        j                  d"d|«      }t        j                  d#d|«      }t        j                  d$d|«      }t)        «       }g }|j                  d«      D ]X  }t        j                  d%dt        j                  dd|«      «      }|sŒ2||v rŒ7|j+                  |«       |j%                  |«       ŒZ dj'                  |«      j                  «       }||‰fS # t        $ r Y �Œ÷w xY w)&zÜConvert content4 inner HTML to stored format:
    - keep <table> HTML intact
    - 

 between <p> blocks
    - attachment <a> links embedded with absolute URL
    - strip <script>/<style>/noise + style attrs via BS4
    r   r   z
<!--.*?-->)Úflagsz<script[^>]*>.*?</script>z<style[^>]*>.*?</style>z+<meta\s+name="Content(?:Start|End)"[^>]*/?>úhtml.parserT)ÚstyleÚclassÚlangÚdirÚalignÚvalignÚwidthÚheightÚborderÚcellpaddingÚcellspacingNz;<img[^>]*src="[^"]*/module/jslib/icons/[a-z]+\.png"[^>]*/?>c                 ó  •— | j                  d«      }| j                  d«      }t        j                  dd|«      }t        j                  |«      j                  «       }t        j                  dd|«      j                  «       }|s5t        j                  j                  |j                  d«      d   «      xs d}t        j                  j                  ‰|«      }‰j                  ||f«       d	t        ‰«      › d
�}d|› d|› d�‰|<   |S )Nr   é   ú<[^>]+>r   u   ^é™„ä»¶[:ï¼š]\s*ú?r   u   é™„ä»¶Ú__LINK__Ú__z	<a href="z" target="_blank">z</a>)Úgroupr   r   r   r   r   ÚosÚpathÚbasenameÚsplitÚurllibÚparseÚurljoinÚappendÚlen)	ÚmÚhrefÚinnerÚtxtÚabs_urlÚkeyÚattachmentsÚlink_protectÚpage_urls	         €€€r   Ú
_link_replz html_to_text.<locals>._link_replz   sè   ø€ Ø�w‰w�q‹zˆØ—‘˜“
ˆÜ�f‰f�Z  UÓ+ˆÜ×Ñ Ó$×*Ñ*Ó,ˆÜ�f‰fÐ(¨"¨cÓ2×8Ñ8Ó:ˆÙÜ—'‘'×"Ñ" 4§:¡:¨c£?°1Ñ#5Ó6ÒB¸(ˆCÜ—,‘,×&Ñ& x°Ó6ˆØ×Ñ˜G S˜>Ô*Øœ˜\Ó*Ð+¨2Ð.ˆØ'¨ yÐ0BÀ3À%ÀtÐLˆ�SÑØˆ
r   z&<a\s[^>]*href="([^"]+)"[^>]*>(.*?)</a>c                 óh   •— ‰j                  | j                  d«      «       dt        ‰«      dz
  › d�S )Nr   Ú__TBL__r   r=   )rF   r>   rG   )rH   Útable_protects    €r   Ú	_tbl_replzhtml_to_text.<locals>._tbl_repl‹   s3   ø€ Ø×Ñ˜QŸW™W Q›ZÔ(Øœ˜]Ó+¨AÑ-Ð.¨bÐ1Ð1r   z<table[^>]*>.*?</table>z<table[^>]*>r   z</p>z</p>

z	<br\s*/?>ú
z(</?(?:span|font|o:p|st1?:[a-z]+)\b[^>]*>z

r:   õ   Â r
   z&nbsp;z[\s\u200b\u200c\u200d\ufeff]+rS   r=   z__LINK__\d+__z__TBL__\d+__z[ \t]+\nz\n{3,}z	[ \t]{2,}r	   )r   r   ÚSÚIr   Úfind_allÚattrsÚpopÚstrr   r   r   ÚsearchrB   r   r   ÚitemsÚ	enumeraterF   ÚjoinÚsetÚadd)ÚcontentrP   Ú_soupÚtagÚattrÚcontent2rQ   rU   Ú	has_tableÚpartsÚblockÚbÚplainÚkÚvr&   ÚtblÚoutÚseenÚfinalÚprM   rN   rO   rT   s    `                    @@@r   Úhtml_to_textru   V   s_  û€ ñ Ø�1�bˆyÐÜ�f‰f�] B¨´r·t±tÔ<€GÜ�f‰fÐ1°2°wÄbÇdÁdÌRÏTÉTÁkÔR€GÜ�f‰fÐ/°°WÄBÇDÁDÌ2Ï4É4ÁKÔP€Gä�f‰fÐCÀRÈÔXZ×X\ÑX\Ô]€Gåð	Ü! '¨=Ó9ˆEØ—~‘~ dÓ+ò .�ð Lò .�DØ—I‘I—M‘M $¨Õ-ñ.ð.ô ˜%“jˆGô ×Ñ Ó(€Gð €Hä�v‰vØFÈÈHÜ�d‰dô€Hð €KØ€Löô �v‰vÐ?ÀÈXÔ]_×]aÑ]aÔdf×dhÑdhÑ]hÔi€Hð €Mô2ô �v‰vÐ0°)¸XÌRÏTÉTÔTV×TXÑTXÉ[ÔY€HÜ—Y‘Y˜°¼¿¹Ô>‘ÀA€Iä�v‰v�g˜z¨8¼2¿4¹4Ô@€HÜ�v‰v�l D¨(¼"¿$¹$Ô?€HÜ�v‰vÐAÀ2ÀxÔWY×W[ÑW[Ô\€Hà€EØ—‘ Ó'ò  ˆØ�K‰K‹MˆÙØÜ—‘�z 2 qÓ)ˆÜ×!Ñ! %Ó(ˆØ—‘˜f cÓ*×2Ñ2°8¸SÓAˆÜ—‘Ð7¸¸UÓCˆÙØØ ×&Ñ&Ó(ò 	 ‰DˆAˆqØ—	‘	˜!˜Q“‰Að	 ä Ó.ò 	0‰FˆAˆsØ—	‘	˜G A 3 b˜/¨3Ó/‰Að	0à�‰�Q—W‘W“YÕð ð  �+‰+�eÓ
€CØ×"Ñ"Ó$ò  ‰ˆˆ1Ø�k‰k˜!˜QÓ‰ð ä˜MÓ*ò 0‰ˆˆ3Ø�k‰k˜G A 3 b˜/¨3Ó/‰ð0ô �&‰&Ð! 2 sÓ
+€CÜ
�&‰&� " cÓ
*€Cä
×
Ñ
˜CÓ
 €CÜ
�&‰&�˜d CÓ
(€CÜ
�&‰&�˜F CÓ
(€CÜ
�&‰&�˜s CÓ
(€Cô ‹5€DØ€EØ�Y‰Y�vÓò ˆÜ�f‰f�V˜R¤§¡¨
°B¸Ó!:Ó;ˆÙØØ�$‰;ØØ�‰�ŒØ�‰�Q�ðð �+‰+�eÓ
×
"Ñ
"Ó
$€Cà�	˜;Ð&Ð&øôk ò 	Úð	ús   ÃAT Ô	TÔTc           	      ó  — g }t         �rSt        | d«      }|j                  dt        j                  d«      ¬«      }|�r|j                  d«      }|�r
|j	                  d«      D ]ö  }|j                  dd¬	«      }|sŒ|j                  d
d«      j                  «       }t        j                  d|«      sŒPt        j                  j                  t        |«      }	t        |j                  dd«      xs |j                  dd¬«      «      }
|j                  d«      }|r|j                  d¬«      nd}t        j                  d|«      sd}|j                  |	|
|f«       Œø |s¦t        j                   d| t        j"                  «      D ]~  }t        j                  j                  t        |j%                  d«      «      }	|j                  |	t        |j%                  d«      «      |j%                  d«      j                  «       f«       Œ€ |S )z:Extract (url, title, date) from subjectinfo.jsp list page.r,   ÚdivÚzfxxgk_item©Úclass_ÚulÚliÚaT)rI   rI   r   z$/art/20\d+/\d+/\d+/art_\d+_\d+\.htmlÚtitler
   ©r   rl   z^20\d{2}-\d{2}-\d{2}$zx<li>\s*<a[^>]+href="([^"]*?/art/20\d+/\d+/\d+/art_\d+_\d+\.html[^"]*)"[^>]*title="([^"]*)"[^>]*>.*?</a>\s*<b>([^<]*)</b>r   r9   é   )r   Úfindr   ÚcompilerZ   r   r   r^   rC   rD   rE   ÚBASE_URLr   Úget_textÚmatchrF   ÚfinditerrX   r>   )Ú	html_textrP   r_   ÚsoupÚboxr{   r|   r}   rI   rL   r~   rl   ÚdaterH   s                 r   Ú
parse_listr‹   Ä   s«  € à€EÞÜ˜Y¨Ó6ˆà�i‰i˜¤b§j¡j°Ó&@ˆiÓAˆÚØ—‘˜$“ˆBÚØŸ+™+ dÓ+ò 9�BØŸ™ ¨$˜Ó/�AÙØ ØŸ5™5 ¨Ó,×2Ñ2Ó4�DÜŸ9™9Ð%LÈdÔSØ Ü$Ÿl™l×2Ñ2´8¸TÓB�GÜ'¨¯©¨g°rÓ(:Ò(Y¸a¿j¹jÈÐTX¸jÓ>YÓZ�EØŸ™ ›�AÙ56˜1Ÿ:™:¨D˜:Ô1¸B�DÜŸ8™8Ð$<¸dÔCØ!˜Ø—L‘L '¨5°$Ð!7Õ8ð9ñ ä—‘ð HØ”r—t‘tó
ò 	QˆAô —l‘l×*Ñ*¬8°Q·W±W¸Q³ZÓ@ˆGØ�L‰L˜'¤;¨q¯w©w°q«zÓ#:¸A¿G¹GÀA»J×<LÑ<LÓ<NÐOÕPð	Qð €Lr   c                 ó  — d}d}d}t         �ržt        | d«      }|j                  ddt        j                  dt        j                  «      i¬«      }|r|j                  d«      rt        |d   «      }|j                  d«      }|s|rt        |j                  d	d
¬«      «      }|j                  ddt        j                  dt        j                  «      i¬«      }|rM|j                  d«      r<|d   j                  «       }	t        j                  d|	«      }
|
r|
j                  d«      }|j                  dt        j                  d«      ¬«      }|rt        |«      }nO|j                  dddi¬«      }|r8t        j                  d| t        j                  «      }|r|j                  d«      }|r|s±t        j                  d| t        j                  «      }|rt        |j                  d«      «      }t        j                  d| t        j                  «      }|r|j                  d«      }t        j                  d| t        j                  «      }|r|j                  d«      }|j                  d«      }|dkD  r|d| }|||fS )z.Extract title, date, content from detail page.r   r,   ÚmetaÚnameÚArticleTitle)r[   rd   Úh1r
   Tr   Úpubdatez(\d{4})-(\d{2})-(\d{2})r   rw   z
^content4$ry   ÚContentStartz7<meta name="ContentStart"/>.*?<meta name="ContentEnd"/>z5<meta\s+name="\s*ArticleTitle\s*"\s+content="([^"]*)"r   z;<meta\s+name="\s*pubdate\s*"\s+content="(\d{4}-\d{2}-\d{2})z=<div[^>]*class="content4"[^>]*>(.*?)<div[^>]*class="content5"Úcontent5N)r   r�   r   r‚   rY   r   r   r„   r   r…   r>   r]   r^   rX   )r‡   rP   r~   rŠ   Úcontent_htmlrˆ   Úmtr�   ÚmdÚdÚdmÚc4ÚmcsÚcmrH   Úcuts                   r   Úparse_detailr�   ç   s  € à€EØ€DØ€LÞÜ˜Y¨Ó6ˆØ�Y‰Y�v f¬b¯j©j¸Ì"Ï$É$Ó.OÐ%PˆYÓQˆÙ�"—&‘&˜Ô#Ü  9¡Ó.ˆEØ�Y‰Y�t‹_ˆÙ™Ü §¡¨C°t Ó <Ó=ˆEØ�Y‰Y�v f¬b¯j©j¸ÄRÇTÁTÓ.JÐ%KˆYÓLˆÙ�"—&‘&˜Ô#Ø�9‘×#Ñ#Ó%ˆAÜ—‘Ð4°aÓ8ˆBÙØ—x‘x “{�à�Y‰Y�u¤R§Z¡Z°Ó%>ˆYÓ?ˆÙÜ˜r›7‰Là—)‘)˜F¨6°>Ð*B�)ÓCˆCÙä—Y‘YÐYÐ[dÔfh×fjÑfjÓk�ÙØ#%§8¡8¨A£;�LÙ™ä�I‰IÐNÐPYÔ[]×[_Ñ[_Ó`ˆÙÜ §¡¨£
Ó+ˆEÜ�I‰IÐTÐV_Ôac×aeÑaeÓfˆÙØ—7‘7˜1“:ˆDÜ�I‰IÐVÐXaÔce×cgÑcgÓhˆÙØŸ7™7 1›:ˆLà
×
Ñ
˜JÓ
'€CØ
ˆQ‚wØ# D SÐ)ˆØ�$˜Ð$Ð$r   c                 óT  — | j                  d|f«      }|j                  «       ry	 | j                  d|||||t        t        t        |df
«      }|j
                  dkD  ryt        j                  dd|«      }t        j                  |«      }t        j                  dd	|«      j                  «       d d
 }| j                  d|j                  |t        |f«       yy# t        j                  $ r=}dt        |«      v r*t        j                   d«       t#        | |||||«      cY d }~S ‚ d }~ww xY w)Nz'SELECT id FROM gov_raw WHERE page_url=?Fz¨INSERT OR IGNORE INTO gov_raw (page_url, source_url, title, content, publish_date, site_name, group_name, script_name, has_table, industry) VALUES (?,?,?,?,?,?,?,?,?,?)Úotherr   r:   r   r	   r
   r   zTINSERT OR IGNORE INTO gov_search (rowid, title, site_name, summary) VALUES (?,?,?,?)TÚlockedr€   )ÚexecuteÚfetchoneÚ	SITE_NAMEÚ
GROUP_NAMEÚSCRIPT_NAMEÚrowcountr   r   r   r   r   Ú	lastrowidÚsqlite3ÚOperationalErrorr]   r   r    Ústore_record)	Úconnr"   r~   rd   rŠ   ri   ÚcurÚsummaryr(   s	            r   rª   rª     s  € Ø
�,‰,Ø1Ø	ˆó€Cð ‡|�|„~ØðØ�l‰lð+ð �#�u˜g t¬Y¼
ÄKÐQZÐ\cÐdó	
ˆð �<‰<˜!ÒÜ—f‘f˜Z¨¨WÓ5ˆGÜ×'Ñ'¨Ó0ˆGÜ—f‘f˜V S¨'Ó2×8Ñ8Ó:¸4¸CÐ@ˆGØ�L‰LØfØ—‘ ¤y°'Ð:ôð ØøÜ×#Ñ#ò Ø”s˜1“vÑÜ�J‰J�qŒMÜ  c¨5°'¸4ÀÓKÕKØûð	ús$   ¦B/C ÃD'Ã*1D"ÄD'Ä!D"Ä"D'c            
      óÊ  — dd l } | j                  «       }|j                  j                  t        «       t        j                  t        d¬«      }|j                  d«       |j                  d«       d}d}t        «       }t        dt        dz   «      D �]   }t        › t        › d|› d�}	 t        ||¬	«      }|j                  j!                  d
d¬«      }	t'        |	|«      }t%        d|› dt)        |«      › d�d¬«       |s|dkD  rt%        dd¬«        �n#|D �]  \  }}}||v rŒ|j+                  |«       	 t        ||¬	«      }|j                  j!                  d
d¬«      }t-        ||«      \  }}}|s|}|s|}t/        ||«      \  }}}t)        t1        j2                  dd|«      j5                  «       «      }|dk  rt%        d|d d › �d¬«       |dz  }Œ½t7        ||||||«      }|r|dz  }t%        d|d d › d|› d�d¬«       n|dz  }t9        j:                  d«       �Œ t9        j:                  d «       �Œ£ |j=                  «        |j?                  «        t%        d!|› �d¬«       t%        d"|› �d¬«       t%        d#t@        › d$�d¬«       y # t"        $ r}
t%        d|› d|
› �d¬«       Y d }
~
 Œxd }
~
ww xY w# t"        $ r#}
t%        d|› d|
› �d¬«       |dz  }Y d }
~
�ŒÈd }
~
ww xY w)%Nr   é<   )r   zPRAGMA busy_timeout=60000zPRAGMA journal_mode=WALr   z
?currpage=z&standardXxgk=1)r#   zutf-8r   )ÚerrorszPage z fetch error: T)Úflushz: found z itemszEmpty page, stop paginationz  detail error z: r:   r   é
   z  skip empty: é   z  + é(   z (ú)g333333Ó?g      à?u   æ–°å¢ž: u   è·³è¿‡: z=== z	 done ===)!r   ÚSessionr   Úupdater   r¨   ÚconnectÚDB_PATHr¡   rb   r   Ú_PAGESrƒ   ÚLIST_APIr)   rd   Údecoder   Úprintr‹   rG   rc   r�   ru   r   r   r   rª   r   r    ÚcommitÚcloser£   )r   Úsr«   Ú	new_countÚ
skip_countÚ	seen_urlsÚpager"   r'   r‡   r(   r_   rL   r~   rŠ   ÚdhtmlÚdtitleÚddater”   rd   ri   Ú_Ú	plain_lenÚoks                           r   ÚmainrË   6  sá  € ÛØ×ÑÓ€AØ‡I�I×Ñ”WÔÜ�?‰?œ7¨BÔ/€DØ‡L�LÐ,Ô-Ø‡L�LÐ*Ô+à€IØ€JÜ“€Iä�aœ !™Ó$ó *ˆÜ�
œ8˜* J¨t¨f°OÐDˆð	Ü�c 1Ô%ˆAØŸ	™	×(Ñ(¨¸Ð(ÓCˆIô ˜9 cÓ*ˆÜ��d�V˜8¤C¨£J <¨vÐ6¸dÕCÙ˜ šÜÐ/°tÕ<ÚØ$)ó 	Ñ ˆG�U˜DØ˜)Ñ#ØØ�M‰M˜'Ô"ðÜ˜'¨1Ô-�ØŸ	™	×(Ñ(¨¸Ð(ÓC�ô
 +7°u¸gÓ*FÑ'ˆF�E˜<ÙØ�ÙØ�Ü$0°¸wÓ$GÑ!ˆG�Y ÜœBŸF™F :¨r°7Ó;×AÑAÓCÓDˆIØ˜2Š~Ü˜ v¨c¨r { mÐ4¸DÕAØ˜a‘�
ØÜ˜d G¨V°W¸eÀYÓOˆBÙØ˜Q‘�	Ü˜˜V C R˜[˜M¨¨E¨7°!Ð4¸DÖAà˜a‘�
Ü�J‰J�sŽOð9	ô: 	�
‰
�3ŽðU*ðX 	‡K�K„MØ‡J�J„LÜ	ˆH�Y�KÐ
 ¨Õ-Ü	ˆH�Z�LÐ
!¨Õ.Ü	ˆD”�˜9Ð
%¨TÖ2øôW ò 	Ü�E˜$˜˜~¨a¨SÐ1¸Õ>Ýûð	ûô ò Ü˜¨ y°°1°#Ð6¸dÕCØ˜a‘�
Ýûðús0   Â)*JÄ4*J6Ê	J3ÊJ.Ê.J3Ê6	K"Ê?KËK"Ú__main__)Nr³   r€   )'Ú__doc__Úsysr?   r   r   Úhtmlr   Úurllib.parserC   r¨   Úbs4r   ÚImportErrorrƒ   r»   r£   r¤   r¥   r¹   r   Ú
_MAX_PAGESr`   Úargvr&   r}   Ú
startswithÚintrB   Ú
ValueErrorrG   rº   r   r)   ru   r‹   r�   rª   rË   Ú__name__© r   r   ú<module>rÚ      sh  ðñ
ó Û 	Û 	Û Û Û Û ðÝ!ð
 )€Ø)€Ø0€	Ø€
Ø'€Ø
€ð @ØOØ'ñ€ð €
Ù�c—h‘hÓò 
�D€A€qØ‡|�|�JÔð	Ù˜QŸW™W S¨!›_¨QÑ/Ó0‰Jð 
ˆi‹˜A ™E¡C¨¯©£MÓ1ð	Ù˜SŸX™X a¨!¡e™_Ó-‰Jð
ð " Q’‰¨A€òóò"k'ò\ òF-%ò`ò><3ð~ ˆzÒÙ…Fð øð{
 ò Ø‚Mðûð. ò 	Ùð	ûð
 ò 	Ùð	ús5    C' Á$C4Â C?Ã'C1Ã0C1Ã4C<Ã;C<Ã?DÄD