Ë
    ¾ò†jœ9  ã                   óæ  — 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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 eej0                  «      D ]k  \  ZZej7                  d
«      r	  eej;                  dd	«      d	   «      ZŒ4edk(  sŒ:ed	z    eej0                  «      k  sŒS	  eej0                  ed	z      «      ZŒm ed	k\  rend	Z ddl!m"Z" ddl#m$Z$ d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+dd„Z,e-dk(  r& ej\                   e,e ¬«      «      Z/ e0de/› d�«       yy# e$ r Y ŒÏw xY w# e$ r Y ŒÚw xY w)u`  
æ—Œå¾·åŽ¿äººæ°‘æ”¿åºœ â€” åŸºå±‚æ”¿åŠ¡å…¬å¼€ä¸“é¢˜ çŽ¯è¯„å®¡æ‰¹ (www.ahjd.gov.cn)
åˆ—è¡¨: /Jczwgk/showList/0/111001001/page_{N}.html  (26é¡µ, 15æ�¡/é¡µ)
      <li><span>YYYY-MM-DD</span><a href="/Jczwgk/show/{id}.html" title="å®Œæ•´æ ‡é¢˜">æ ‡é¢˜</a></li>
è¯¦æƒ…: /Jczwgk/show/{id}.html
      æ ‡é¢˜: meta ArticleTitle | æ—¥æœŸ: meta PubDate(å�–å‰�10)
      æ­£æ–‡: div.m-dttexts.f-clearfix.j-fontContent#zoom (æ·±åº¦è®¡æ•°é—­å�ˆ)
å…¥åº“: crawler_lib.push_to_searchdb â†’ /root/search.db (FTSè§¦å�‘å™¨è‡ªåŠ¨ç»´æŠ¤)
æ³¨æ„�: åˆ—è¡¨é“¾æŽ¥æ˜¯ /Jczwgk/show/ è€Œé�ž /OpennessContent/show/ (ä¸Ž hpgs è„šæœ¬ä¸�å�Œ)
é    N)Úpush_to_searchdbu   æ—Œå¾·åŽ¿çŽ¯è¯„å®¡æ‰¹zhttps://www.ahjd.gov.cnÚ	111001001z
2020-01-01zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36é   z--pages=ú=z--pages)Úasync_playwright)ÚStealthc                 ó(   — t         › dt        › d| › d�S )Nz/Jczwgk/showList/0/z/page_z.html)ÚBASEÚ	COLUMN_ID)Úpages    ú&/root/gov_crawler/crawl_ahjd_jczwgk.pyÚlist_urlr   )   s   € ÜˆVÐ&¤y k°¸°v¸UÐCÐCó    c                 óŒ  — g }t        j                  d| t         j                  «      D ]™  }|j                  d«      j	                  «       |j                  d«      j	                  «       |j                  d«      j	                  «       }}}|d d }|rt        j
                  d|«      sŒ~|j                  t        |z   ||dœ«       Œ› |S )NzZ<li>\s*<span>([^<]*)</span>\s*<a href="(/Jczwgk/show/\d+\.html)"[^>]*title="([^"]*)"[^>]*>r   é   é   é
   z^20\d{2}-\d{2}-\d{2}$)ÚurlÚtitleÚdate)ÚreÚfinditerÚSÚgroupÚstripÚmatchÚappendr
   )Ú	html_textÚitemsÚmr   Úhrefr   s         r   Ú
parse_listr"   -   s¬   € Ø€EÜ�[‰[ØeØ”2—4‘4óò Iˆð ŸG™G A›J×,Ñ,Ó.°·±¸³
×0@Ñ0@Ó0BÀAÇGÁGÈAÃJ×DTÑDTÓDV�EˆdˆØ�C�RˆyˆÙœBŸH™HÐ%=¸tÔDØØ�‰œT D™[°5À$ÑGÕHðIð €Lr   c                 óR  — t        j                  d| «      }|st        j                  d| «      }|sy| |j                  «       d }d}t        j                  d|«      D ]G  }|j	                  d«      j                  d«      r |dz  }|dk(  sŒ.|d|j                  «        c S |dz  }ŒI |S )	u-   æ��å�– id=zoom å®¹å™¨ï¼ˆæ·±åº¦è®¡æ•°é—­å�ˆï¼‰z8<div[^>]*class="[^"]*m-dttexts[^"]*"[^>]*id="zoom"[^>]*>z<div[^>]*id="zoom"[^>]*>Ú Nr   ú<div\b[^>]*>|</div>r   ú</div>©r   ÚsearchÚendr   r   Ú
startswithÚstart)r   Úm_openÚsegÚdepthÚmms        r   Úextract_zoomr0   ;   s©   € ä�Y‰YÐRÐT]Ó^€FÙÜ—‘Ð6¸	ÓBˆÙØØ
�F—J‘J“L�MÐ
"€CØ€EÜ�k‰kÐ0°#Ó6ò ˆØ�8‰8�A‹;×!Ñ! (Ô+Ø�Q‰JˆEØ˜‹zØ˜;˜BŸH™H›JÐ'Ò'à�Q‰J‰Eðð €Jr   c                 ó*  — t        j                  dd| t         j                  t         j                  z  ¬«      } t        j                  dd| t         j                  t         j                  z  ¬«      } t        j                  dd| t         j                  ¬«      } d„ } || d«      } t        j                  dd| t         j                  ¬«      } t        j                  d	d| «      } d
D ]  }| j	                  |«      }|dkD  sŒ| d | } Œ  | j                  «       S )Nz<script.*?</script>r$   ©Úflagsz<style.*?</style>ú
<!--.*?-->c                 ó˜  — | }	 t        j                  ||«      }|s	 |S ||j                  «       d  }d}|j                  «       }t        j                  d|«      D ]U  }|j	                  d«      j                  d«      r.|dz  }|dk(  sŒ.|j                  «       |j                  «       z   } n|dz  }ŒW |d |j                  «        ||d  z   }ŒÈ)Nr   r%   r   r&   r'   )ÚhtmlÚpatÚoutr    r-   r.   r)   r/   s           r   Ústrip_blockzclean_body.<locals>.strip_blockS   sÐ   € ØˆØÜ—	‘	˜#˜sÓ#ˆAÙØð ˆ
ð �a—e‘e“g�h�-ˆCØˆEØ—%‘%“'ˆCÜ—k‘kÐ"8¸#Ó>ò �Ø—8‘8˜A“;×)Ñ)¨(Ô3Ø˜Q‘J�EØ “zØŸe™e›g¨¯©«Ñ0˜Ùà˜Q‘J‘Eðð �j�q—w‘w“y�/ C¨¨ IÑ-ˆCð r   z\<div[^>]*class="[^"]*(?:wzewm|relInfo|fxd_close|m-share|m-related-info|m-dtcode)[^"]*"[^>]*>z%<div[^>]*class="clear"[^>]*>\s*</div>z
<p>\s*</p>)u   ä¸­å¤®æ”¿åºœç½‘ç«™u   çœ�çº§æ”¿åºœç½‘ç«™u   å¸‚çº§æ”¿åºœç½‘ç«™u   å…³äºŽæˆ‘ä»¬u   ä¸»åŠžå�•ä½�ï¼šu   ç½‘ç«™æ ‡è¯†ç �u   æœ¬ç½‘ç«™æ”¯æŒ�IPv6u   æ”¿åŠ¡æ–°åª’ä½“çŸ©é˜µu   æ—Œå¾·åŽ¿äººæ°‘æ”¿åºœu   ç”¨å¾®ä¿¡æ‰«æ��äºŒç»´ç �u   åˆ†äº«è‡³å¥½å�‹å’Œæœ‹å�‹åœˆu   æ‰“å�°u   å…³é—­çª—å�£u!   æ‰«ä¸€æ‰«åœ¨æ‰‹æœºæ‰“å¼€å½“å‰�é¡µr   )r   Úsubr   ÚIÚfindr   )Úbodyr9   ÚkwÚis       r   Ú
clean_bodyr@   N   sÛ   € Ü�6‰6Ð(¨"¨d¼"¿$¹$ÄÇÁ¹+ÔF€DÜ�6‰6Ð&¨¨D¼¿¹¼r¿t¹t¹ÔD€DÜ�6‰6�-  T´·±Ô6€Dòñ( �tÐ|Ó}€DÜ�6‰6Ð:¸BÀÌBÏDÉDÔQ€DÜ�6‰6�-  TÓ*€Dð4ò ˆð �I‰I�b‹MˆØˆq‹5Ø˜˜�8‰Dðð �:‰:‹<Ðr   c           	      óþ  — g }t        «       }t        j                  d| t        j                  «      D ]}  }|j	                  d«      }t
        j                  j                  ||«      }||vsŒ9|j                  |«       |j                  |t        j                  j                  |«      xs df«       Œ t        j                  d| t        j                  «      }|�r#t        j                  d|j	                  d«      t        j                  «      D ]ì  }|j	                  d«      }t        j                  dd|j	                  d«      «      j!                  «       }t        j                  d	d|«      j!                  «       }t
        j                  j                  ||«      }||vsŒ’|j                  |«       |j                  ||xs5 t        j                  j                  |j#                  d
«      d   «      xs df«       Œî |S )u[   ä»Žè¯¦æƒ…é¡µæ��å�– PDF object / ä¸‹è½½é“¾æŽ¥ ä½œä¸ºé™„ä»¶ (å®¡æ‰¹ç»“æžœå…¬ç¤ºé¡µæ­£æ–‡=PDF)zG<object[^>]*data="([^"]+\.(?:pdf|docx?|xlsx?|pptx?|zip|rar|ofd))"[^>]*>r   õ   é™„ä»¶z8<div[^>]*class="[^"]*m-dtdownload[^"]*"[^>]*>(.*?)</div>z$<a[^>]*href="([^"]+)"[^>]*>(.*?)</a>ú<[^>]+>r$   r   u	   ã€�.*?ã€‘ú?r   )Úsetr   r   r;   r   ÚurllibÚparseÚurljoinÚaddr   ÚosÚpathÚbasenamer(   r   r:   r   Úsplit)	r   Úpage_urlÚattsÚseenr    r!   Úabs_urlÚm_dlÚtxts	            r   Úextract_attachments_from_htmlrT   t   s–  € à€DÜ‹5€Dä�[‰[ÐcÐenÔpr×ptÑptÓuò JˆØ�w‰w�q‹zˆÜ—,‘,×&Ñ& x°Ó6ˆØ˜$ÒØ�H‰H�WÔØ�K‰K˜¤"§'¡'×"2Ñ"2°7Ó";Ò"G¸xÐHÕIðJô �9‰9ÐPÐR[Ô]_×]aÑ]aÓb€DÚÜ—‘ÐDÀdÇjÁjÐQRÃmÔUW×UYÑUYÓZò 	cˆAØ—7‘7˜1“:ˆDÜ—&‘&˜ R¨¯©°«Ó4×:Ñ:Ó<ˆCÜ—&‘&˜ r¨3Ó/×5Ñ5Ó7ˆCÜ—l‘l×*Ñ*¨8°TÓ:ˆGØ˜dÒ"Ø—‘˜Ô!Ø—‘˜W cÒ&`¬R¯W©W×-=Ñ-=¸g¿m¹mÈCÓ>PÐQRÑ>SÓ-TÒ&`ÐX`ÐaÕbð	cð €Kr   c                 ó  — d}t        j                  d| «      }|st        j                  d| «      }|r4t        j                  dd|j                  d«      «      j	                  «       }d}t        j                  d| «      }|st        j                  d| «      }|r"|j                  d«      j	                  «       d d	 }t        | «      }|rt        |«      nd}|s&t        | d«      }|rd
j                  d„ |D «       «      }|sy |||| dœS )Nr$   z'name="ArticleTitle"\s+content="([^"]+)"z!ArticleTitle"\s+content="([^"]+)"ú\s+ú r   z"name="PubDate"\s+content="([^"]+)"zPubDate"\s+content="([^"]+)"r   ú

c              3   ó4   K  — | ]  \  }}d |› d|› d�–— Œ y­w)ú<p><a href="ú" target="_blank">ú</a></p>N© )Ú.0r   Únames      r   ú	<genexpr>zparse_detail.<locals>.<genexpr>    s,   è ø€ ò á�C˜ð ˜s˜eÐ#5°d°V¸8ÔDñùs   ‚)r   Úpub_dater=   Úraw)	r   r(   r:   r   r   r0   r@   rT   Újoin)r   r   r    ra   r=   rO   s         r   Úparse_detailrd   �   sø   € Ø€EÜ
�	‰	Ð<¸iÓH€AÙÜ�I‰IÐ:¸IÓFˆÙÜ—‘�v˜s A§G¡G¨A£JÓ/×5Ñ5Ó7ˆØ€HÜ
�	‰	Ð7¸ÓC€AÙÜ�I‰IÐ5°yÓAˆÙØ—7‘7˜1“:×#Ñ#Ó% c rÐ*ˆÜ˜	Ó"€DÙ#Œ:�dÔ¨€DáÜ,¨Y¸Ó;ˆÙØ—;‘;ñ à!%ôó ˆDñ ØØ¨¸$ÀyÑQÐQr   c           
      óÈ  ‡‡‡‡— | 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  ¬«      } | }g Ši Šˆˆˆfd„}t        j                  d||t         j                  t         j                  z  ¬«      }ˆ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|	«      }
|
j                  dd«      j                  dd«      }
t        j                  dd|
«      }
|
sŒi‰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                  dd|«      }t        j                  dd|«      }t        j                  d d|«      }t        «       }g }|j                  d«      D ]W  }t        j                  d!dt        j                  dd|«      «      }|r||v rŒ6|j                  |«       |j                  |«       ŒY dj                  |«      j                  «       }||‰fS )"u]   zoom æ­£æ–‡ â†’ å­˜å‚¨æ ¼å¼�: é™„ä»¶ç»�å¯¹åŒ– + è¡¨æ ¼ä¿�ç•™ + æ®µè�½åŒ– (ç”¨æˆ·æ ¼å¼�è§„èŒƒ)r$   r   r4   r2   z<script[^>]*>.*?</script>z<style[^>]*>.*?</style>c                 ó<  •— | j                  d«      }| j                  d«      }t        j                  dd|«      }|j                  «       }t        j                  dd|«      j                  «       }|s5t        j
                  j                  |j                  d«      d   «      xs d}t        j                  j                  ‰	|«      }t        j                  d	|t        j                  «      }|r‰j                  ||f«       d
t        ‰«      › d�}d|› d|› d�‰|<   |S )Nr   r   rC   r$   u   ^é™„ä»¶[:ï¼š]\s*rD   r   rB   z:\.(pdf|docx?|xlsx?|pptx?|zip|rar|wps|et|dps|txt|ofd)(\?|$)Ú__LINK__Ú__rZ   r[   r\   )r   r   r:   r   rJ   rK   rL   rM   rF   rG   rH   r(   r;   r   Úlen)
r    r!   ÚinnerrS   rQ   Ú	is_attachÚkeyÚattachmentsÚlink_protectrN   s
          €€€r   Ú
_link_replz html_to_text.<locals>._link_repl¶   sø   ø€ Ø�w‰w�q‹zˆØ—‘˜“
ˆÜ�f‰f�Z  UÓ+ˆØ�i‰i‹kˆÜ�f‰fÐ(¨"¨cÓ2×8Ñ8Ó:ˆÙÜ—'‘'×"Ñ" 4§:¡:¨c£?°1Ñ#5Ó6ÒB¸(ˆCÜ—,‘,×&Ñ& x°Ó6ˆÜ—I‘IÐ[Ð]dÔfh×fjÑfjÓkˆ	ÙØ×Ñ ¨˜~Ô.Øœ˜\Ó*Ð+¨2Ð.ˆØ*¨7¨)Ð3EÀcÀUÈ(ÐSˆ�SÑØˆ
r   z&<a\s[^>]*href="([^"]+)"[^>]*>(.*?)</a>c                 ó¾   •— | j                  d«      }t        j                  j                  ‰|«      }t	        j
                  d|t        j                  «      ryd|› d�S )Nr   z'ueditor|editor|icon|logo|qrcode|ewm|btnr$   rZ   u&   " target="_blank">æŸ¥çœ‹å›¾ç‰‡</a></p>)r   rF   rG   rH   r   r(   r;   )r    ÚsrcÚabs_srcrN   s      €r   Ú	_img_replzhtml_to_text.<locals>._img_replÉ   sN   ø€ Ø�g‰g�a‹jˆÜ—,‘,×&Ñ& x°Ó5ˆä�9‰9Ð?ÀÌ"Ï$É$ÔOØØ˜g˜YÐ&LÐMÐMr   z<img[^>]*src="([^"]+)"[^>]*>c                 óh   •— ‰j                  | j                  d«      «       dt        ‰«      dz
  › d�S )Nr   Ú__TBL__r   rh   )r   r   ri   )r    Ú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   ú</p>z</p>

z	<br\s*/?>ú
z(</?(?:span|font|o:p|st1?:[a-z]+)\b[^>]*>rX   rC   õ   Â rW   z&nbsp;z[\s\u200b\u200c\u200d\ufeff]+ru   rh   z__LINK__\d+__z__TBL__\d+__z[ \t]+\nz\n{3,}z	[ \t]{2,}rV   )r   r:   r   r;   r(   rM   r   Úreplacer   Ú	enumerater   rc   rE   rI   )ÚcontentrN   Úcontent2ro   rs   rw   Ú	has_tableÚpartsÚblockÚbÚplainÚkÚvr?   Útblr8   rP   ÚfinalÚprl   rm   rn   rv   s    `                  @@@r   Úhtml_to_textr‰   ©   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Ø€Hð €KØ€Löô  �v‰vÐ?ÀÈXÔ]_×]aÑ]aÔdf×dhÑdhÑ]hÔi€HôNô �v‰vÐ5°yÀ(ÔRT×RVÑRVÔY[×Y]ÑY]ÑR]Ô^€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Ü
�&‰&�˜d CÓ
(€CÜ
�&‰&�˜F CÓ
(€CÜ
�&‰&�˜s CÓ
(€Cä‹5€DØ€EØ�Y‰Y�vÓò ˆÜ�f‰f�V˜R¤§¡¨
°B¸Ó!:Ó;ˆÙ�c˜T‘kØØ�‰�ŒØ�‰�Q�ðð �+‰+�eÓ
×
"Ñ
"Ó
$€CØ�	˜;Ð&Ð&r   c              ƒ   ó  K  — t        «       4 ƒd {  –—† }|j                  j                  dddg¬«      ƒ d {  –—† }|j                  t        ddddœ¬«      ƒ d {  –—† }t        «       }|j                  |«      ƒ d {  –—†  |j                  «       ƒ d {  –—† }d	}t        d
«      D ]ž  }	 |j                  t        d«      dd¬«      ƒ d {  –—† }|j                  d«      ƒ d {  –—†  |j                  «       ƒ d {  –—† }	d|	v sd|	v rd} n;t        d|› d|r|j                  nd› d�«       |j                  d«      ƒ d {  –—†  Œ  |s5t        d«       |j#                  «       ƒ d {  –—†  	 d d d «      ƒd {  –—†  yg }d	}| }t        d| dz   «      D �]#  }t        |«      }	 |j%                  d|«      ƒ d {  –—† }	t'        |	«      }t        d|› dt)        |«      › d�«       |s|dkD  r nÎŒZt+        j,                  d |	«      }|r7t/        |t1        |j3                  d«      xs |j3                  d!«      «      «      }|D ]>  }|d"   r&|d"   t4        k  rd}t        d#|› d$t4        › d%�«        n|j7                  |«       Œ@ |r n7|j                  t9        j:                  d&d'«      «      ƒ d {  –—†  ||k\  s�Œ$ n t        d(t)        |«      › d)|› �«       |s*|j#                  «       ƒ d {  –—†  	 d d d «      ƒd {  –—†  yg }t=        |d«      D �]`  \  }}|d*   }	 |j%                  d|«      ƒ d {  –—† }	t?        |	«      }|s$t        d+|› d,t)        |«      › d.|d/   d d0 › �«       ŒX|d/   xs |d/   }|d1   xs |d"   }tA        |d2   |«      \  }}}t)        t+        jB                  d3d4|«      jE                  «       «      }d5|v }|d6k  r(|s&t        d+|› d,t)        |«      › d7|d d0 › �«       d8|› d9�}|j7                  tF        ||||tI        jJ                  |d	¬:«      d;œ«       t        d+|› d,t)        |«      › d<|d d › d=�«       |j                  t9        j:                  d>d?«      «      ƒ d {  –—†  �Œc tM        |d@¬A«      }|j#                  «       ƒ d {  –—†  |cd d d «      ƒd {  –—†  S 7 �Œ›7 �Œw7 �ŒW7 �Œ77 �Œ"7 �Œï7 �ŒÙ7 �ŒÄ# t        $ r(}
t        d|› dt!        |
«      d d › �«       Y d }
~
�ŒÂd }
~
ww xY w7 �Œ¶7 �Œ’7 �Œ„7 �ŒG# t        $ r}
t        d|› d|
› �«       Y d }
~
�Œ�d }
~
ww xY w7 �Œ7 �ŒD7 �Œ67 �Œ# t        $ r(}
t        d+|› d,t)        |«      › d-|
› �«       Y d }
~
�ŒTd }
~
ww xY w7 Œÿ7 ŒÙ7 ŒÉ# 1 ƒd {  –—†7  sw Y   y xY w­w)BNTz---disable-blink-features=AutomationControlledz--no-sandbox)ÚheadlessÚargsiV  i„  )ÚwidthÚheight)Ú
user_agentÚignore_https_errorsÚviewportFé   r   Údomcontentloadedi`ê  )Ú
wait_untilÚtimeoutiÄ	  zJczwgk/showzm-liststyle2z  [WAF] attempt=z status=rD   u    æ— åˆ—è¡¨ç‰¹å¾�z  [WAF] goto retry z: é<   u     [FATAL] è¿‡ç›¾å¤±è´¥r   z—async (url) => {
                    const r = await fetch(url, {credentials: 'include'});
                    return await r.text();
                }z  [LIST-ERR] page=u     ç¬¬u   é¡µ: u    æ�¡u#   å…±\s*(\d+)\s*é¡µ|pagecount="(\d+)"r   r   u     [CUTOFF] ç¬¬u   é¡µå‡ºçŽ° < u    æ—¥æœŸ, å�œæ­¢ç¿»é¡µiÜ  i¸  u     [LIST] å…±æ”¶é›† u    æ�¡, total_pages=r   z  [ú/z] [ERR] z] [NO-BODY] r   é(   ra   r=   rC   r$   z<a hrefr   z
] [EMPTY] z<p>rx   )Úensure_ascii)Ú	site_namer   ra   r   r}   rm   u
   ] æœ€æ–°: z...iè  iÐ  Úahjd_jczwgk)Úbatch_label)'r   ÚchromiumÚlaunchÚnew_contextÚUAr   Úapply_stealth_asyncÚnew_pageÚrangeÚgotor   Úwait_for_timeoutr}   ÚprintÚstatusÚ	ExceptionÚstrÚcloseÚevaluater"   ri   r   r(   ÚmaxÚintr   ÚCUTOFFr   ÚrandomÚrandintr|   rd   r‰   r:   r   Ú	SITE_NAMEÚjsonÚdumpsr   )Úpagesrˆ   ÚbrowserÚctxÚstealthr   Úokr?   Úrespr   ÚeÚ	items_allÚ
cutoff_hitÚtotal_pagesÚpgr   r   Úm_pcÚitÚrecordsÚdr   ra   r}   r   rm   Ú	plain_lenÚ	has_linksÚnew_cs                                r   Ú	run_asyncrÆ   	  sð  è ø€ ÜÓ!÷ ið i QØŸ
™
×)Ñ)°4Ø;¸^ð?
Ð)ó ÷ ˆð ×'Ñ'Ü¨tØ#¨sÑ3ð (ó 
÷ 
ˆô “)ˆØ×)Ñ)¨#Ó.×.Ð.Ø—\‘\“^×#ˆð ˆÜ�q“ò 	.ˆAð	@Ø!ŸY™Y¤x°£{Ð?QÐ[`˜YÓa×a�Ø×+Ñ+¨DÓ1×1Ð1Ø"&§,¡,£.×0�	Ø  IÑ-°À9Ñ1LØ�BÙÜÐ(¨¨¨8Á4°D·K²KÈSÐ3QÐQaÐbÔcð ×'Ñ'¨Ó-×-Ñ-ð	.ñ ÜÐ*Ô+Ø—-‘-“/×!Ð!Ø÷;i÷ ið ið@ ˆ	Øˆ
ØˆÜ˜˜5 1™9Ó%ó 	ˆBÜ˜2“,ˆCðØ"&§-¡-ð 1ð ó#÷ �	ô ˜yÓ)ˆEÜ�E˜"˜˜U¤3 u£: ,¨dÐ3Ô4ÙØ˜’6ÙØÜ—9‘9ÐCÀYÓOˆDÙÜ! +¬s°4·:±:¸a³=Ò3QÀDÇJÁJÈqÃMÓ/RÓS�Øò %�Ø�f’: " V¡*¬vÒ"5Ø!%�JÜ˜N¨2¨$¨l¼6¸(ÐBWÐXÔYÙØ× Ñ  Õ$ð%ñ ÙØ×'Ñ'¬¯©°t¸TÓ(BÓC×CÐCØ�[Ô Ùð;	ô> 	Ð#¤C¨	£NÐ#3Ð3EÀkÀ]ÐSÔTÙØ—-‘-“/×!Ð!Ø÷Ki÷ ið iðP ˆÜ˜y¨!Ó,ó 	D‰EˆAˆrØ�U‘)ˆCðØ"&§-¡-ð 1ð ó#÷ �	ô ˜YÓ'ˆAÙÜ˜˜A˜3˜a¤ I£Ð/¨|¸B¸w¹KÈÈÐ<LÐ;MÐNÔOØØ�g‘JÒ- " W¡+ˆEØ˜‘}Ò2¨¨6©
ˆHÜ.:¸1¸V¹9ÀcÓ.JÑ+ˆG�Y ÜœBŸF™F :¨r°7Ó;×AÑAÓCÓDˆIà! WÐ,ˆIØ˜2Š~¡iÜ˜˜A˜3˜a¤ I£Ð/¨z¸%ÀÀ¸*¸ÐFÔGØ ˜w dÐ+�Ø�N‰NÜ&°ÀHØ w¼t¿z¹zÈ+ÐdiÔ?jñô ô �C˜�s˜!œC 	›NÐ+¨:°e¸C¸R°j°\ÀÐEÔFØ×'Ñ'¬¯©°t¸TÓ(BÓC×CÒCð9	Dô< ! °mÔDˆØ�m‰m‹o×ÐØ÷Si÷ iò iùðùð
ùð
 	/ùØ#ùð bùØ1ùØ0úô
 ò @ÜÐ+¨A¨3¨b´°Q³¸¸°°Ð>×?Ò?ûð@úà-ùð "ùð9iùðLúô ò ÜÐ*¨2¨$¨b°°Ð4Ô5Ýûðúð( Dùð "ùðIiùðXúô ò Ü˜˜A˜3˜a¤ I£Ð/¨x¸°sÐ;Ô<Ýûðúð* Døð 	øðQiø÷ i÷ iñ iüs  ‚V‘R,’V•#U2¸R/¹"U2ÁR2Á"U2Á>R5Á?U2ÂR8ÂU2Â, SÃR;ÃSÃ%R>Ã&SÃ=SÃ>SÄU2Ä SÄ.U2ÅS8Å&U2Å)S;Å*U2Å/VÅ:S>Å;VÆ $U2Æ%TÆ:TÆ;TÆ?C.U2Ê-T,Ê.	U2Ê92U2Ë+T/Ë,U2Ë1VË<T2Ë=VÌU2ÌT8Ì2T5Ì3T8Ì7D5U2Ñ,U,Ñ-'U2ÒU.ÒU2ÒVÒ&U0Ò'VÒ/U2Ò2U2Ò5U2Ò8U2Ò;SÒ>SÓSÓ	S5ÓS0Ó*U2Ó0S5Ó5U2Ó;U2Ó>VÔTÔ	T)ÔT$ÔU2Ô$T)Ô)U2Ô/U2Ô2VÔ5T8Ô8	U)ÕU$ÕU2Õ$U)Õ)U2Õ.U2Õ0VÕ2VÕ8U;Õ9VÖ VÚ__main__)r´   zDone: z records)r   )1Ú__doc__ÚsysrJ   r   Úasyncior²   r¯   ÚtimeÚurllib.parserF   rK   ÚinsertÚdirnameÚabspathÚ__file__Úcrawler_libr   r±   r
   r   r®   r    Ú
_MAX_PAGESr|   Úargvr?   Úar*   r­   rM   Ú
ValueErrorri   Ú_PAGESÚplaywright.async_apir   Úplaywright_stealthr   r   r"   r0   r@   rT   rd   r‰   rÆ   Ú__name__ÚrunÚnr¦   r]   r   r   ú<module>rÜ      sƒ  ðñ	÷ >× =× =× =Ø ‡�‡���2—7‘7—?‘? 2§7¡7§?¡?°8Ó#<Ó=Ô >Ý (à#€	Ø €Ø€	Ø	€Øv€à€
Ù�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€å 1Ý &òDòòò&#òLò2Rò8]'ó@jðZ ˆzÒØˆ�‰‘I FÔ+Ó,€AÙ	ˆF�1�#�XÐ
Õð øðu
 ò 	Ùð	ûð
 ò 	Ùð	ús$   Â-EÃ)E(ÅE%Å$E%Å(E0Å/E0