Ë
    ó@­jÚ5  ã                   óZ  — 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m	Z	m
Z
 ddlZddlmZ ej                  j                  dej                  j!                  ej                  j#                  e«      «      «       ddlmZ dZdZdZd	Zd
ZdZdZdZdZdZdZg d¢Z  ejB                  «       Z"e"jF                  jI                  eddœ«       	 ejJ                  jL                  jO                  «        d„ Z)d„ Z*d!d„Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4e5d k(  r e4«        yy# e($ r Y Œ:w xY w)"uð  
å®‰å¾½çœ� é‡�å¤§å»ºè®¾é¡¹ç›®æ‰¹å‡†å’Œå®žæ–½é¢†åŸŸã€Œæ‰¹å‡†ç»“æžœä¿¡æ�¯ã€�çˆ¬è™«
åˆ—è¡¨: https://zwgk.ah.gov.cn/Zdxm/showList/568/page_N.html   (20 æ�¡/é¡µ)
      <pagination currentpage="1" pagesize="20" pagecount="80" total="1589">  â†� pagecount ç›´æŽ¥ç»™æ€»é¡µæ•°
æ�¡ç›®: <li><span class="fr">2026-09-17</span><a href="ç»�å¯¹URL" title="å®Œæ•´æ ‡é¢˜" target="_blank">æ ‡é¢˜</a><i></i></li>
      âš ï¸� æœ¬æ �ç›®æ˜¯**è·¨åŽ…å±€è�šå�ˆé¡µ**ï¼šæ�¡ç›®é“¾æŽ¥æŒ‡å�‘ sthjt / jtt / fzggw / zrzyt / slt ç­‰ä¸�å�ŒåŽ…å±€åŸŸå��
      âš ï¸� å·¦ä¾§å­�æ �ç›®è�œå�•ä¹Ÿæ˜¯ li>aï¼ˆhref=/Zdxm/showList/586/ã€�/Zdxm/sgxk/ï¼‰ï¼Œ**å¿…é¡»æŒ‰ netloc è¿‡æ»¤**
         â€”â€” å�ªä¿�ç•™ã€Œé�ž zwgk.ah.gov.cnã€�çš„é“¾æŽ¥ï¼›å�¦åˆ™ä¼šæ··å…¥ã€Œå�–æ°´è®¸å�¯å®¡æ‰¹ç»“æžœâ€¦ã€�è¿™ç±»å¯¼èˆªæ�¡ç›®
      âš ï¸� æ—¥æœŸåœ¨ <span class="fr"> é‡Œã€�åœ¨ <a> **å‰�é�¢**ï¼ˆé�ž TRS å¸¸è§�çš„ a+span é¡ºåº�ï¼‰
è¯¦æƒ…: å�„åŽ…å±€æ¨¡æ�¿å®Œå…¨ä¸�å�Œï¼Œ**æ²¡æœ‰ç»Ÿä¸€å®¹å™¨** â†’ æ­£æ–‡ç”¨ã€Œæœ€å¯† <p> ç°‡ã€�é€šç”¨ç®—æ³•ï¼š
        max_p = å…¨é¡µ <p> æœ€å¤šçš„å®¹å™¨æ•° â†’ åœ¨å�Œ p æ•°çš„å®¹å™¨é‡Œå�–**æ–‡æœ¬æœ€çŸ­**çš„ï¼ˆ= æœ€å†…å±‚åŒ…è£¹ï¼Œé�¿å¼€é¡µå¤´é¡µè„šï¼‰
      å®žæµ‹æœ‰æ•ˆå®¹å™¨ï¼šsthjt=div.con_main/div.lmcontain.wenzhang(15p) / jtt=div.j-fontContent.gkwz_contnet(43p)
                    zrzyt=div.ls-content-con(13p)
      âš ï¸� ç‰¹ä¾‹ fzggw.ah.gov.cn/site/tpl/<tpl>?id=<n>ï¼š**å£³é¡µ**ï¼Œé�™æ€� HTML é‡Œ <p>=0ã€�æ­£æ–‡å�ªæœ‰ 208 å­—å¯¼èˆªæ–‡æœ¬ã€‚
         çœŸæ•°æ�®åœ¨é¾™è®¯ label æŽ¥å�£ï¼šGET /site/label/8888?labelName=amdManage&isJson=true&siteId=49631471&id=<n>
         â†’ JSON çš„ data æ˜¯ã€Œè¡Œæ”¿è®¸å�¯å†³å®šä¹¦æ–‡å�·/è®¸å�¯ç±»åˆ«/è®¸å�¯å†…å®¹/è¡Œæ”¿ç›¸å¯¹äººå��ç§°/ç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç �â€¦ã€�ç»“æž„åŒ–å­—æ®µ
ç”¨æ³•:
  python3 crawl_ah_zdxm.py --pages=1
  python3 crawl_ah_zdxm.py --pages=5
é    N)ÚurljoinÚurlparse)ÚBeautifulSoup)Úpush_to_searchdbzhttps://zwgk.ah.gov.cnz/Zdxm/showList/568zzwgk.ah.gov.cnu.   å®‰å¾½çœ�-é‡�å¤§å»ºè®¾é¡¹ç›®æ‰¹å‡†ç»“æžœä¿¡æ�¯u   å®¡æ‰¹å…¬ç¤ºu   å®‰å¾½z
2023-09-18zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36é-   iïPõÚ	amdManage))ÚmanageFiledNumu   è¡Œæ”¿è®¸å�¯å†³å®šä¹¦æ–‡å�·)ÚmanageTitleu   è¡Œæ”¿è®¸å�¯å†³å®šæ–‡ä¹¦å��ç§°)ÚmanageClassu   è®¸å�¯ç±»åˆ«)ÚmanageContentu   è®¸å�¯å†…å®¹)ÚmanageContentNameu   è¡Œæ”¿ç›¸å¯¹äººå��ç§°)ÚmanageRemarkCu   è¡Œæ”¿ç›¸å¯¹äººç±»åˆ«)Ú
manageCodeu   ç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç �)ÚmanageOrganu   ç»„ç»‡æœºæž„ä»£ç �)ÚmanageBusinessCodeu   å·¥å•†æ³¨å†Œå�·)ÚmanageRegisterNumu   ç¨ŽåŠ¡ç™»è®°å�·)ÚmanageUnitCodeu   äº‹ä¸šå�•ä½�è¯�ä¹¦å�·)ÚmanageSocietyCodeu   ç¤¾ä¼šç»„ç»‡ç™»è®°è¯�å�·)ÚmanageFrCodeu   æ³•å®šä»£è¡¨äººå§“å��)ÚmanageSourceu   è®¸å�¯å†³å®šæ—¥æœŸ)ÚmanageStartDateu   è®¸å�¯æœ‰æ•ˆæœŸè‡ª)ÚmanageEndDateu   è®¸å�¯æœ‰æ•ˆæœŸè‡³)ÚmanageOrganNameu   è®¸å�¯æœºå…³)ÚmanageOrganCodeu$   è®¸å�¯æœºå…³ç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç �)ÚmanageStatusu   å½“å‰�çŠ¶æ€�)ÚmanageDataFromu   æ•°æ�®æ�¥æº�å�•ä½�)ÚmanageAddressCodeu   ä½�æ‰€zzh-CN,zh;q=0.9)z
User-AgentzAccept-Languagec                  ó–  — d} t         j                  dd  D ]°  }|j                  d«      rt        |j	                  d«      d   «      } Œ2|dk(  sŒ8t        t         j                  «      t         j                  j                  |«      dz   kD  sŒut        t         j                  t         j                  j                  |«      dz      «      } Œ² | S )Nr   é   z--pages=ú=z--pages)ÚsysÚargvÚ
startswithÚintÚsplitÚlenÚindex)ÚpagesÚas     úcrawl_ah_zdxm.pyÚ
parse_argsr+   S   s–   € Ø€EÜ�X‰X�a�bˆ\ò 9ˆØ�<‰<˜
Ô#Ü˜Ÿ™ › Q™Ó(‰EØ�)‹^¤¤C§H¡H£´·±·±¸qÓ0AÀAÑ0EÓ EÜœŸ™¤§¡§¡°Ó!2°QÑ!6Ñ7Ó8‰Eð	9ð
 €Ló    c                 óÞ   — t        j                  | xs d«      } t        j                  dd| «      } t        j                  dd| «      } t        j                  dd| «      } | j	                  «       S )NÚ z[\u200b\u200e\u200f\ufeff\xa0]z\s+ú u   ^[â€¢Â·\-â€”]\s*)Úhtml_modÚunescapeÚreÚsubÚstrip)Úts    r*   Úclean_titler6   ]   sZ   € Ü×Ñ˜!š'˜rÓ"€AÜ
�‰Ð0°"°aÓ8€AÜ
�‰ˆv�s˜AÓ€AÜ
�‰Ð" B¨Ó*€AØ�7‰7‹9Ðr,   c           
      óf  — t        d«      D ]¶  }	 t        j                  | d|xs	 t        dz   it        d¬«      }|j
                  dk(  rK|j                  r|j                  j                  «       dv r|j                  xs d|_        |j                  c S t        d	|j
                  ›d
| d d ›�t        j                  ¬«        y  y # t        $ ra}|dk(  r6t        d| d d ›dt        |«      d d ›�t        j                  ¬«       Y d }~ y t        j                   d|dz   z  «       Y d }~�Œd }~ww xY w)Né   ÚRefererú/F)ÚheadersÚtimeoutÚverifyéÈ   )z
iso-8859-1zlatin-1ÚasciiÚcp1252úutf-8z  [WARN] HTTP r/   éZ   ©Úfileé   z  [WARN] GET failed éP   ú: g      ð?r   )ÚrangeÚSESSIONÚgetÚBASE_URLÚTIMEOUTÚstatus_codeÚencodingÚlowerÚapparent_encodingÚtextÚprintr!   ÚstderrÚ	ExceptionÚstrÚtimeÚsleep)ÚurlÚrefererÚattemptÚrÚes        r*   Úhttp_getr]   e   s  € Ü˜“8ò ,ˆð	,Ü—‘˜C¨)°WÒ5NÄÈ3ÁÐ)OÜ$+°Eð ó ;ˆAà�}‰} Ò#Ø—z’z Q§Z¡Z×%5Ñ%5Ó%7Ð;gÑ%gØ!"×!4Ñ!4Ò!?¸�A”JØ—v‘v’Ý¨1¯=«=¸#¸c¸r¹(ÐCÌ#Ï*É*ÕUÙð,ð øô ò 	,Ø˜!Š|Ý°c¸#¸2²hÄÀAÃÀsÈÁÐLÔSV×S]ÑS]Õ^ÝÜ�J‰J�s˜g¨™kÑ*×+Ò+ûð		,ús$   �BCÂ.CÃ	D0Ã5D+Ä
D+Ä+D0c                 ó  — t        | d«      }g }t        «       }|j                  d«      D �]Ó  }|j                  dd¬«      }|sŒ|d   j	                  «       }|r|j                  d«      rŒA|j                  d«      r|}nS|j                  d	«      rd
|z   }n<|j                  d«      rt        t        |«      }nt        t        t        z   dz   |«      }t        |«      j                  j                  t        «      rŒÑd|v st        j                  d|«      rŒì||v rŒñ|j                  |«       t!        |j#                  d«      xs |j%                  dd¬«      «      }d}	|j                  d«      }
|
r:t        j                  d|
j%                  dd¬«      «      }|r|j'                  d«      }	|	s:t        j                  d|j%                  dd¬«      «      }|r|j'                  d«      }	|s�ŒÀ|j)                  |||	f«       �ŒÖ |S )uA   è¿”å›ž [(url, title, date), ...]ï¼›æŽ’é™¤æœ¬ç«™æ �ç›®å¯¼èˆªé“¾æŽ¥úhtml.parserÚlir)   T)Úhrefra   )újavascript:ú#úmailto:útel:Úhttpú//úhttps:r:   ú/page_1.htmlzaction=listz/public/column/\d+Útitler/   ©r4   r.   Úspanz(\d{4}-\d{2}-\d{2})r   )r   ÚsetÚfind_allÚfindr4   r#   r   rK   ÚLIST_DIRr   ÚnetlocÚendswithÚ	SELF_HOSTr2   ÚsearchÚaddr6   rJ   Úget_textÚgroupÚappend)Ú	html_textÚsoupÚoutÚseenr`   r)   ra   Úurj   ÚdateÚspÚms               r*   Ú
parse_listr�   x   sÀ  € ä˜ MÓ2€DØ
€CÜ‹5€DØ�m‰m˜DÓ!ó $)ˆØ�G‰G�C˜dˆGÓ#ˆÙØØ�‰y�‰Ó ˆÙ�t—‘Ð'NÔOØØ�?‰?˜6Ô"Ø‰AØ�_‰_˜TÔ"Ø˜4‘‰AØ�_‰_˜SÔ!Üœ $Ó'‰Aäœ¤8Ñ+¨nÑ<¸dÓCˆAä�A‹;×Ñ×&Ñ&¤yÔ1Øà˜AÑ¤§¡Ð+@À!Ô!DØØ�‰9ØØ�‰�ŒÜ˜AŸE™E '›NÒI¨a¯j©j¸ÀD¨jÓ.IÓJˆØˆØ�W‰W�V‹_ˆÙÜ—	‘	Ð0°"·+±+¸cÈ°+Ó2NÓOˆAÙØ—w‘w˜q“z�ÙÜ—	‘	Ð0°"·+±+¸cÈ°+Ó2NÓOˆAÙØ—w‘w˜q“z�ÛØ�J‰J˜˜5 $Ð'Ö(ðI$)ðJ €Jr,   c                 ój   — t        j                  d| «      }|rt        |j                  d«      «      S dS )Nzpagecount="(\d+)"r   r   )r2   rt   r$   rw   )ry   r€   s     r*   Útotal_pagesrƒ   ¥   s,   € Ü
�	‰	Ð&¨	Ó2€AÙŒ3ˆq�w‰w�q‹z‹?Ð& QÐ&r,   c                 ó(  — dD ]�  \  }}| j                  |«      D ]t  }|j                  |«      xs dj                  «       }|r|j                  d«      rŒ:|j                  d«      r	d|z   ||<   ŒT|j                  d«      rŒft	        ||«      ||<   Œv Œ� y )N))r)   ra   )ÚimgÚsrcr.   )rb   rd   re   rc   zdata:rg   rh   rf   )rn   rJ   r4   r#   r   )rz   Úpage_urlÚtagÚattrr5   Úvs         r*   Ú
absolutizer‹   ª   s�   € Ø4ò /‰	ˆˆTØ—‘˜sÓ#ò 	/ˆAØ—‘�t“Ò" ×)Ñ)Ó+ˆAÙ˜Ÿ™Ð%UÔVØØ�|‰|˜DÔ!Ø" Q™,��$’Ø—\‘\ &Õ)Ü! (¨AÓ.��$’ñ	/ñ/r,   c                 óŽ  — g }| j                  g d¢«      D ]a  }t        |j                  d«      «      }|dk  rŒ#|j                  dd¬«      }t        |«      dk  rŒE|j                  |t        |«      |f«       Œc |syt	        d	„ |D «       «      }|D �cg c]  }|d
   |k(  sŒ|‘Œ }}|j                  d„ ¬«       |d
   d   S c c}w )uj   æœ€å¯† <p> ç°‡ï¼š<p> æœ€å¤šçš„å®¹å™¨ä¸­ï¼Œå�–æ–‡æœ¬æœ€çŸ­çš„ï¼ˆ= æœ€å†…å±‚ï¼Œé�¿å¼€é¡µå¤´/é¡µè„š/å¯¼èˆªï¼‰)ÚdivÚtdÚarticleÚsectionÚprE   r/   Trk   éx   Nc              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   N© )Ú.0Úcs     r*   ú	<genexpr>z$pick_content_node.<locals>.<genexpr>Ã   s   è ø€ Ò#˜ˆq��tÑ#ùs   ‚r   c                 ó   — | d   S )Nr   r”   )r–   s    r*   ú<lambda>z#pick_content_node.<locals>.<lambda>Å   s
   € ˜Q˜q™T€ r,   )Úkey)rn   r&   rv   rx   ÚmaxÚsort)rz   ÚcandsÚelÚnp_ÚtxtÚmaxpr–   Útights           r*   Úpick_content_noder£   ¶   sÊ   € à€EØ�m‰mÒ?Ó@ò *ˆÜ�"—+‘+˜cÓ"Ó#ˆØ�Š7ØØ�k‰k˜# TˆkÓ*ˆÜˆs‹8�cŠ>ØØ�‰�cœ3˜s›8 RÐ(Õ)ð*ñ ØÜÑ#˜UÔ#Ó#€DØÖ.�1  1¡¨£ŠQÐ.€EÐ.Ø	‡J�J‘>€JÔ"Ø�‰8�A‰;Ðùò /s   ÂCÂ!Cc                 ó2  — | €y| j                  g d¢«      D ]  }|j                  «        Œ | j                  d«      D ]  }|j                  «        Œ t        | |«       g }| j                  g d¢d¬«      D ]M  }|j                  dk(  rt        |«      }nt        |j                  dd¬	«      «      }|sŒ=|j                  |«       ŒO |s!t        | j                  d
d¬	«      «      }|r|g}d
j                  d„ |D «       «      }t        j                  dd|«      }|S )Nr.   )ÚscriptÚstyleÚiframeÚnoscriptzudiv.article-share-group, div.article-share-more, div.favoriteContainer, div.div_table_suoyin, div.xz, div.article-inf)r‘   ÚtableÚh1Úh2Úh3Úh4T)Ú	recursiver©   r/   rk   ú
c              3   óh   K  — | ]*  }|j                  «       j                  d «      r|nd|z  –— Œ, y­w)z<tableú	<p>%s</p>N)r4   r#   )r•   r‘   s     r*   r—   z clean_content.<locals>.<genexpr>à   s-   è ø€ Ò]ÐRS˜!Ÿ'™'›)×.Ñ.¨xÔ8‘Q¸kÈA¹oÓMÑ]ùs   ‚02z
<p>\s*</p>)rn   Ú	decomposeÚselectr‹   ÚnamerU   r6   rv   rx   Újoinr2   r3   )	Únoder‡   ÚbadÚbÚpartsrž   r    r5   Úbodys	            r*   Úclean_contentr»   É   s  € Ø€|ØØ�}‰}ÒFÓGò ˆØ�‰�ðà�[‰[ð Ió Jò ˆà	�‰�ðô ˆt�XÔà€EØ�m‰mÒBÈdˆmÓSò ˆØ�7‰7�gÒÜ�b“'‰Cä˜bŸk™k¨#°T˜kÓ:Ó;ˆCÚØ�L‰L˜Õðñ Ü˜Ÿ™ d°$˜Ó7Ó8ˆÙØ�CˆEà�9‰9Ñ]ÐW\Ô]Ó]€DÜ�6‰6�-  TÓ*€DØ€Kr,   c                 óÐ  — g }t        «       }t        j                  d| t        j                  «      D ]±  }|j	                  d«      j                  «       }|j                  d«      rd|z   }n|j                  d«      st        ||«      }||v rŒ[|j                  |«       |j                  t        j                  j                  |j                  d«      d   «      d d |d	œ«       Œ³ |S )
Nz6href="([^"]+\.(?:pdf|docx?|xlsx?|zip|rar|wps|7z|txt))"r   rg   rh   rf   ú?r   r’   )r´   rX   )rm   r2   ÚfinditerÚIrw   r4   r#   r   ru   rx   ÚosÚpathÚbasenamer%   )ry   r‡   Úattsr|   r€   r}   s         r*   Úextract_attsrÄ   å   sÇ   € Ø€DÜ‹5€DÜ�[‰[ÐRÐT]Ô_a×_cÑ_cÓdò 	QˆØ�G‰G�A‹J×ÑÓˆØ�<‰<˜ÔØ˜1‘‰AØ—‘˜fÔ%Ü˜ !Ó$ˆAØ�‰9ØØ�‰�ŒØ�‰œRŸW™W×-Ñ-¨a¯g©g°c«l¸1©oÓ>¸tÀÐDÈQÑOÕPð	Qð €Kr,   c                 ó®  — ddl m}  |t        | «      j                  «      }|j	                  d«      xs dgd   }|sy	 t
        j	                  dt        dt        |dœ| dd	œt        d
¬«      }d|_	        |j                  «       }|j	                  d«      xs i }t!        |t"        «      r|syg }t$        D ]E  \  }	}
|j	                  |	«      }|dv rŒ|j'                  d|
›dt)        t        |«      «      ›d�«       ŒG |rddj+                  |«      z  S dS # t        $ r7}t        d|›dt        |«      dd ›�t        j                  ¬«       Y d}~yd}~ww xY w)uC   fzggw å£³é¡µï¼šèµ°é¾™è®¯ label æŽ¥å�£å�–è¡Œæ”¿è®¸å�¯ç»“æž„åŒ–æ•°æ�®r   )Úparse_qsÚidr.   z'https://fzggw.ah.gov.cn/site/label/8888Útrue)Ú	labelNameÚisJsonÚsiteIdrÇ   ÚXMLHttpRequest)r9   zX-Requested-WithF)Úparamsr;   r<   r=   rA   Údatau%     [WARN] fzggw label æŽ¥å�£å¤±è´¥ id=rG   NéF   rC   )Nr.   Únullz<tr><td>z	</td><td>z
</td></tr>z<table>%s</table>)Úurllib.parserÆ   r   ÚqueryrJ   rI   ÚFZGGW_LABELÚFZGGW_SITE_IDrL   rN   ÚjsonrT   rR   rU   r!   rS   Ú
isinstanceÚdictÚFZGGW_FIELDSrx   r6   rµ   )rX   rÆ   ÚqsÚridr[   ÚjrÎ   r\   ÚrowsÚkÚlabelrŠ   s               r*   Úfetch_fzggw_managerß   õ   sH  € å%Ù	”(˜3“-×%Ñ%Ó	&€BØ�6‰6�$‹<Ò˜B˜4 Ñ
#€CÙØðÜ�K‰KÐAÜ-8ÀFÜ*7¸sñ Dà,/ÐEUÑ VÜ '°ð	 ó 7ˆð
 ˆŒ
Ø�F‰F‹HˆØ�u‰u�V‹}Ò" ˆô �dœDÔ!©ØØ€DÜ ò V‰ˆˆ5Ø�H‰H�Q‹KˆØÐ"Ñ"ØØ�ŠºÄÌCÐPQËFÕ@SÐTÕUð	Vñ
 37Ð §¡¨£Ñ.Ð>¸BÐ>øô ò ÝºsÄCÈÃFÈ3ÈBÁKÐPÔWZ×WaÑWaÕbÜûðús   ¿AD Ä	EÄ-EÅEc                 óü  — t        | «      }|s||dg fS t        |d«      }|}|j                  dddi«      }|r#|j                  d«      rt	        |d   «      xs |}|}|j                  dddi«      }|r||j                  d«      rkt        j                  d|d   «      }	|	rPd	t        |	j                  d
«      «      t        |	j                  d«      «      t        |	j                  d«      «      fz  }t        |«      }
t        |
| «      }t        | «      j                  }t        t        j                  dd|«      j                  «       «      }|j!                  d«      r|dk  rt#        | «      }|r|}|||t%        || «      fS )Nr.   r_   Úmetar´   ÚArticleTitleÚcontentÚPubDateu'   (\d{4})[-/å¹´](\d{1,2})[-/æœˆ](\d{1,2})z%04d-%02d-%02dr   rE   r8   ú<[^>]*>?zfzggw.ah.gov.cnr>   )r]   r   ro   rJ   r6   r2   rt   r$   rw   r£   r»   r   rq   r&   r3   r4   rr   rß   rÄ   )rX   Ú
list_titleÚ	list_datery   rz   rj   Úmtr~   Úmpr€   r¶   rº   rq   Ú	plain_lenÚalts                  r*   Úfetch_detailrì     s\  € Ü˜“€IÙØ˜9 b¨"Ð,Ð,Ü˜ MÓ2€Dà€EØ	�‰�6˜F NÐ3Ó	4€BÙ	ˆb�f‰f�YÔÜ˜B˜y™MÓ*Ò3¨eˆà€DØ	�‰�6˜F IÐ.Ó	/€BÙ	ˆb�f‰f�YÔÜ�I‰IÐ@À"ÀYÁ-ÓPˆÙØ#¤s¨1¯7©7°1«:£¼¸A¿G¹GÀA»J»ÌÈQÏWÉWÐUVËZËÐ&YÑYˆDä˜TÓ"€DÜ˜˜sÓ#€Dô �c‹]×!Ñ!€FÜ”B—F‘F˜;¨¨DÓ1×7Ñ7Ó9Ó:€IØ‡�Ð(Ô)¨i¸#ªoÜ  Ó%ˆÙØˆDà�$˜œl¨9°cÓ:Ð:Ð:r,   c                  ó2  — t        «       } | sd} g }t        «       }t        d| dz   «      D �]¬  }dt        t        |fz  }t        |t        t        z   dz   ¬«      }|st        d|z  «        �nn|dk(  rt        |«      }|rt        d|z  «       t        |«      }|st        d|z  «        �n0d	}|D �]  \  }	}
}|	|v rŒ|j                  |	«       |r
|t        k  rŒ*t        |	|
|«      \  }}}}|}|r2d
j                  d„ |D «       «      }|r|d
z   |z   j                  «       n|}|r1t        t        j                   dd|«      j                  «       «      dk  r	d|xs |
z  }|j#                  t$        |xs |
|xs |||	|	|rt'        j(                  |d¬«      ndt*        ddœ	«       |dz  }t-        j.                  d«       �Œ t        d||t        |«      fz  «       �Œ¯ t        dt        |«      z  «       t1        |t2        «       t        dt        |«      z  «       y )Né   r   z%s%s/page_%d.htmlri   )rY   z [PAGE %d] fetch failed, stoppingu   [INFO] æ �ç›®å…± %s é¡µu*   [PAGE %d] 0 items (åˆ†é¡µè¾¹ç•Œ), stoppingr   r¯   c              3   ó:   K  — | ]  }d |d   ›d|d   ›d�–— Œ y­w)z<p><a href="rX   z">r´   z</a></p>Nr”   )r•   r)   s     r*   r—   zmain.<locals>.<genexpr>R  s   è ø€ ÒcÑYZÀÀ%ÃÈ!ÈFË)Ô TÑcùs   ‚rå   r.   é
   r±   F)Úensure_asciiz[])	Ú	site_namerj   Úpub_daterã   Ú
source_urlrX   ÚattachmentsÚ
group_nameÚindustryg      Ð?z[PAGE %d] +%d items (total %d)u   
æœ‰æ•ˆ %d æ�¡, å…¥åº“...u   å®Œæˆ�! æ–°å¢ž/æ›´æ–° %d æ�¡)r+   rm   rH   rK   rp   r]   rR   rƒ   r�   ru   ÚCUTOFFrì   rµ   r4   r&   r2   r3   rx   Ú	SITE_NAMErÕ   ÚdumpsÚGROUPrV   rW   r   ÚCATEGORY)r(   Ú	all_itemsr|   ÚpgÚlist_page_urlry   ÚtpÚitemsÚn_newÚ
detail_urlrj   r~   Úd_titleÚd_daterº   rÃ   rã   Úsegs                     r*   Úmainr  3  s   € Ü‹L€EÙØˆà€IÜ‹5€DÜ�A�u˜q‘yÓ!ó )NˆØ+¬x¼À2Ð.FÑFˆÜ˜]´H¼xÑ4GÈ.Ñ4XÔYˆ	ÙÜÐ4°rÑ9Ô:ÚØ�Š7Ü˜YÓ'ˆBÙÜÐ/°"Ñ4Ô5Ü˜9Ó%ˆÙÜÐ>ÀÑCÔDÚØˆØ',ó 	Ñ#ˆJ˜˜tØ˜TÑ!ØØ�H‰H�ZÔ Ù˜œvšØÜ*6°zÀ5È$Ó*OÑ'ˆG�V˜T 4ØˆGÙØ—i‘iÑcÐ^bÔcÓc�Ù<C˜7 T™>¨CÑ/×6Ñ6Ô8È�Ùœc¤"§&¡&¨°b¸'Ó"B×"HÑ"HÓ"JÓKÈbÒPØ%¨Ò)9°EÑ:�Ø×ÑÜ&Ø Ò) EØ"šN dØ"Ø(Ø!ÙGKœtŸz™z¨$¸UÕCÐQUÜ#Øñ
ô 
ð �Q‰JˆEÜ�J‰J�tÖð3	ô4 	Ð.°"°e¼SÀ»^Ð1LÑLÖMðS)NôV 
Ð
&¬¨Y«Ñ
7Ô8Ü�Y¤Ô)Ü	Ð
(¬3¨y«>Ñ
9Õ:r,   Ú__main__)N)6Ú__doc__rÀ   r2   r!   rV   rÕ   Úhtmlr0   rÑ   r   r   ÚrequestsÚbs4r   rÁ   ÚinsertÚdirnameÚabspathÚ__file__Úcrawler_libr   rK   rp   rs   rù   rü   rû   rø   ÚUArL   rÔ   rÓ   rØ   ÚSessionrI   r;   ÚupdateÚpackagesÚurllib3Údisable_warningsrT   r+   r6   r]   r�   rƒ   r‹   r£   r»   rÄ   rß   rì   r  Ú__name__r”   r,   r*   ú<module>r     sG  ðñó( 
Û 	Û 
Û Û Û ß *ã Ý à ‡�‡���2—7‘7—?‘? 2§7¡7§?¡?°8Ó#<Ó=Ô >Ý (à#€Ø€Ø€	Ø<€	Ø€Ø€Ø	€ð;€à
€ð €Ø€ò€ð0 ˆ(×
Ñ
Ó
€Ø ‡�× Ñ  bÐ=MÑNÔ Oð	Ø×Ñ×Ñ×.Ñ.Ô0ò
òóò&*òZ'ò
	/òò&ò8ò ?ò<;ò@4;ðn ˆzÒÙ…Fð øðw ò 	Ùð	ús   Ã$D" Ä"D*Ä)D*