Ë
    ºç‚j*  ã                   ó,  — 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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d	„Zdd
„Zd„ Zedk(  r e«        yy)uÌ  
crawl_zixing_hjzl.py - èµ„å…´å¸‚-çŽ¯å¢ƒæ²»ç�†å�Šå»ºè®¾é¡¹ç›®å…¬ç¤º (www.zixing.gov.cn)
ç«™ç‚¹: MMB1 é˜²æŠ¤ (Server: core, MM_ cookie) â€” é�žç‘žæ•°4, stealth goto å�Ž DOM å�³çœŸå®žé¡µé�¢
åˆ—è¡¨: çº¯é�™æ€�åˆ†é¡µ default.htm + default_N.htm (N=1..31), total=622, æ¯�é¡µ 20 æ�¡
  åˆ—è¡¨é¡¹: <li><a href="content_XXXX.html">æ ‡é¢˜</a><span class="time">YYYY-MM-DD</span></li>
è¯¦æƒ…: content_XXXX.html, meta ArticleTitle/PubDate/ContentSource, æ­£æ–‡ div.content
é    N)Úpush_to_searchdbzhttp://www.zixing.gov.cnz%/zwgk/ztbd/zwgkgzydzl/zlhms/hjbf/hjzlz/tmp/zixing_hjzl.locku+   èµ„å…´å¸‚-çŽ¯å¢ƒæ²»ç�†å�Šå»ºè®¾é¡¹ç›®å…¬ç¤ºzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36c                 ó,  — t        t        d«      }	 t        j                  |t        j                  t        j
                  z  «       |S # t        $ rÁ t        d| › d�«       t        j                  «       | z   }t        j                  «       |k  rv	 t        j                  |t        j                  t        j
                  z  «       |cY S # t        $ r t        j                  d«       Y nw xY wt        j                  «       |k  rŒvt        d«       Y y w xY w)NÚwu=     [LOCK] å�¦ä¸€ zixing å®žä¾‹è¿�è¡Œä¸­, ç­‰å¾…é‡Šæ”¾ (æœ€å¤š zs)...é
   u     [LOCK] ç­‰å¾…è¶…æ—¶, æ”¾å¼ƒ)
ÚopenÚ	LOCK_FILEÚfcntlÚflockÚLOCK_EXÚLOCK_NBÚBlockingIOErrorÚprintÚtimeÚsleep)Úmax_waitÚfdÚdeadlines      ú&/root/gov_crawler/crawl_zixing_hjzl.pyÚacquire_lockr      sÐ   € Ü	Œi˜Ó	€BðÜ�‰�BœŸ™¬¯©Ñ5Ô6Øˆ	øÜò 
ÜÐMÈhÈZÐW\Ð]Ô^Ü—9‘9“; Ñ)ˆÜ�i‰i‹k˜HÒ$ðÜ—‘˜B¤§¡´·±Ñ =Ô>Ø’	øÜ"ò Ü—
‘
˜2–ðúô	 �i‰i‹k˜HÓ$ô 	Ð-Ô.Ùð
ús<   ’6A	 Á	ADÂ6C	ÃDÃ	C*Ã'DÃ)C*Ã*DÄDÄDc              ƒ   óx  K  — ddl m} ddlm}  |«       4 ƒd {  –—† }|j                  j                  ddg d¢¬«      ƒ d {  –—† }|j                  t        dd	d
dœd¬«      ƒ d {  –—† } |«       }|j                  |«      ƒ d {  –—†  |j                  «       ƒ d {  –—† }t        t        z   dz   }	 |j                  |dd¬«      ƒ d {  –—† }	|j                  d«      ƒ d {  –—†  |j                  «       ƒ d {  –—† }
t        j                   d|
«      }t#        d|	r|	j$                  nd› d|r|j'                  d«      nd› dt)        |
«      › �«       |r[d|j'                  d«      v sd|j'                  d«      v r5t#        d«       |j+                  «       ƒ d {  –—†  	 d d d «      ƒd {  –—†  yg }t1        «       }t3        d| dz   «      D �].  }|dk(  r|}nt        t        z   d|dz
  › d�z   }	 |j                  |dd ¬«      ƒ d {  –—† }	|j                  d!«      ƒ d {  –—†  |j                  «       ƒ d {  –—† }
|j5                  d%«      ƒ d {  –—† }|st#        d&|› d'�«        n•t#        d(|› d)t)        |«      › d*�«       |D ]B  }|d+   sŒ	|d+   |vsŒ|j7                  |d+   «       |j9                  |d+   |d,   |d-   d.œ«       ŒD |j5                  d/|› d0�«      ƒ d {  –—† }|r�Œ t#        d&|› d1�«        n t#        d2t)        |«      › d*�«       g }t;        |«      D �]'  \  }}t#        d3|dz   › d4t)        |«      › d#|d5   d d6 › d7�«       	 |j                  |d8   dd ¬«      ƒ d {  –—† }	|j                  d!«      ƒ d {  –—†  |j                  «       ƒ d {  –—† }
|d5   }t        j                   d:|
«      }|r>|j'                  d«      j=                  «       r|j'                  d«      j=                  «       }|d;   }t        j                   d<|
«      }|r7t        j                   d=|j'                  d«      «      }|r|j'                  «       }d>}t        j                   d?|
«      }|r|j'                  d«      j=                  «       }|j=                  «       s3|
j?                  d@«      }|dkD  r|
j?                  dA|«      dz   }|
||dBz    }|j=                  «       st#        dC«       �ŒÇt        j@                  dDdEt        z   d4z   |«      }t        j@                  dFdGt        z   d4z   |«      }|j9                  ||d8   |tB        |d>dHœ«       �Œ* |j+                  «       ƒ d {  –—†  d d d «      ƒd {  –—†  t#        dIt)        «      › dJ�«       |rtE        |dK«       t)        |«      S 7 �ŒŽ7 �Œi7 �ŒH7 �Œ+7 �Œ7 �Œì7 �ŒÖ7 �ŒÁ7 �Œ%7 �Œ# t,        $ rN}t#        dt/        |«      d d › �«       |j+                  «       ƒ d {  –—†7   Y d }~d d d «      ƒd {  –—†7   yd }~ww xY w7 �Œ7 �Œ7 �Œí# t,        $ r)}t#        d"|› d#t/        |«      d d$ › �«       Y d }~ �ŒWd }~ww xY w7 �Œ7 �Œ}7 �Œ÷7 �Œá7 �ŒÌ# t,        $ r%}t#        d9t/        |«      d d$ › �«       Y d }~�Œrd }~ww xY w7 �Œ<7 �Œ/# 1 ƒd {  –—†7  sw Y   �Œ@xY w­w)LNr   )Úasync_playwright)ÚStealthTz>/root/.cache/ms-playwright/chromium-1228/chrome-linux64/chrome)z--no-sandboxz--disable-setuid-sandboxz---disable-blink-features=AutomationControlled)ÚheadlessÚexecutable_pathÚargszzh-CNi   i„  )ÚwidthÚheightzAsia/Shanghai)Ú
user_agentÚlocaleÚviewportÚtimezone_idz/default.htmÚdomcontentloadedi¸ˆ  )Ú
wait_untilÚtimeoutip  z<title>([^<]*)</title>z  [LOAD] status=ú?z title=é   z len=ÚNWAFzEnvironment Checkingu     [WAF] ä»�è¢«æ‹¦æˆªz  [LOAD ERR] éx   z	/default_z.htmi0u  iÄ	  z  [LIST ERR pz] éd   aÅ  () => {
                const out = [];
                document.querySelectorAll('li').forEach(li => {
                    const a = li.querySelector('a[href*="content_"]');
                    if (a) {
                        const sp = li.querySelector('.time');
                        out.push({t: a.innerText.trim(), h: a.href, d: sp ? sp.innerText.trim() : ''});
                    }
                });
                return out;
            }z  [pu   ] æ— åˆ—è¡¨é¡¹, å�œæ­¢u     ç¬¬u   é¡µ: u    æ�¡ÚhÚtÚd)ÚurlÚtitleÚdatez2() => document.querySelectorAll('a[href*="default_z.htm"]').length > 0u   ] æ— ä¸‹ä¸€é¡µu     [LIST] åŽ»é‡�å�Ž z  [ú/r.   é(   z...r-   z    [DETAIL ERR] z/<meta\s+name="ArticleTitle"\s+content="([^"]*)"r/   z*<meta\s+name="PubDate"\s+content="([^"]*)"z\d{4}-\d{2}-\d{2}Ú z*class="content[^"]*"[^>]*>([\s\S]*?)</div>zclass="content"ú>i N  u       [SKIP] æ­£æ–‡ç©ºzhref="/zhref="zsrc="/zsrc=")r.   r-   Úpub_dateÚ	site_nameÚcontentÚsummaryu     å…± u
    æ�¡æœ‰æ•ˆÚzixing_hjzl)#Úplaywright.async_apir   Úplaywright_stealthr   ÚchromiumÚlaunchÚnew_contextÚUAÚapply_stealth_asyncÚnew_pageÚBASEÚLIST_DIRÚgotoÚwait_for_timeoutr6   ÚreÚsearchr   ÚstatusÚgroupÚlenÚcloseÚ	ExceptionÚstrÚsetÚrangeÚevaluateÚaddÚappendÚ	enumerateÚstripÚfindÚsubÚ	SITE_NAMEr   )Úpagesr   r   ÚpÚbrowserÚctxÚstealthÚpageÚ	first_urlÚrespÚhtmlÚmÚeÚ	items_allÚseenÚpgr-   ÚitemsÚitÚhas_nextÚrecordsÚidxr.   r4   Údmr6   Úidx2Ústarts                               r   Ú	run_asyncrm   &   sš  è ø€ Ý5Ý*ÙÓ!÷ vð v QØŸ
™
×)Ñ)ØØ\Únð *ó 
÷ 
ˆð
 ×'Ñ'´2¸gØ;?È3Ñ1OÐ]lð (ó n÷ nˆá“)ˆØ×)Ñ)¨#Ó.×.Ð.Ø—\‘\“^×#ˆô œ8‘O nÑ4ˆ	ð	ØŸ™ 9Ð9KÐUZ˜Ó[×[ˆDØ×'Ñ'¨Ó-×-Ð-ØŸ™›×'ˆDÜ—	‘	Ð3°TÓ:ˆAÜÐ$±D T§[¢[¸cÐ$BÀ'ÑXYÈ!Ï'É'ÐRSÌ*Ð_bÐIcÐchÔilÐmqÓirÐhsÐtÔuÙ�f §¡¨£
Ñ*Ð.DÈÏÉÐPQË
Ñ.RÜÐ,Ô-Ø—m‘m“o×%Ð%Ø÷/v÷ vð vð< ˆ	Ü‹uˆÜ˜˜5 1™9Ó%ó $	ˆBØ�QŠwØ‘äœX‘o¨)°B°q±D°6¸Ð(>Ñ>�ðØ!ŸY™Y sÐ7IÐSX˜YÓY×Y�Ø×+Ñ+¨DÓ1×1Ð1Ø!Ÿ\™\›^×+�ð
 Ÿ-™-ð 
)ó 
÷ 
ˆEñ Ü˜˜R˜DÐ 6Ð7Ô8ÙÜ�E˜"˜˜U¤3 u£: ,¨dÐ3Ô4Øò Z�Ø�c“7˜r #™w¨dÒ2Ø—H‘H˜R ™WÔ%Ø×$Ñ$¨R°©W¸rÀ#¹wÐPRÐSVÑPWÑ%XÕYðZð
 "Ÿ]™]Ð-`ÐacÐ`dÐdxÐ+yÓz×zˆHÛÜ˜˜R˜D Ð/Ô0ÙðI$	ôL 	Ð#¤C¨	£NÐ#3°4Ð8Ô9ð ˆÜ  Ó+ó +	‰GˆC�Ü�C˜˜A™�w˜a¤ I£Ð/¨r°"°W±+¸c¸rÐ2BÐ1CÀ3ÐGÔHðØ!ŸY™Y r¨%¡yÐ=OÐY^˜YÓ_×_�Ø×+Ñ+¨DÓ1×1Ð1Ø!Ÿ\™\›^×+�ð �w‘KˆEÜ—	‘	ÐLÈdÓSˆAÙ�Q—W‘W˜Q“Z×%Ñ%Ô'ØŸ™ ›
×(Ñ(Ó*�Ø˜&‘zˆHÜ—	‘	ÐGÈÓNˆAÙÜ—Y‘YÐ3°Q·W±W¸Q³ZÓ@�ÙØ!Ÿx™x›z�HàˆGÜ—	‘	ÐGÈÓNˆAÙØŸ'™' !›*×*Ñ*Ó,�Ø—=‘=”?à—y‘yÐ!2Ó3�Ø˜!’8Ø ŸI™I c¨4Ó0°1Ñ4�EØ" 5¨¨u©Ð5�GØ—=‘=”?ÜÐ,Ô-Ùä—f‘f˜Z¨´D©¸3Ñ)>ÀÓHˆGÜ—f‘f˜Y¨´$©¸Ñ(<¸gÓFˆGØ�N‰NØØ˜%‘yØ$Ü&Ø"Øñö ðI+	ðX �m‰m‹o×Ð÷mv÷ vôp 
ˆF”3�w“<�. 
Ð
+Ô,ÙÜ˜ -Ô0Üˆw‹<Ððwvùð
ùð
nùð 	/ùØ#ùð
 \ùØ-ùØ'ùð
 &ùð-vúô0 ò 	Ü�M¤# a£&¨¨# , Ð0Ô1Ø—-‘-“/×!Ñ!Û÷7v÷ vñ vûð0	úð ZùØ1ùØ+úÜò Ü˜ b T¨¬C°«F°4°C¨L¨>Ð:Ô;Þûðúð
ùð( {ùð `ùØ1ùØ+úÜò ÜÐ)¬#¨a«&°°#¨,¨Ð8Ô9ÝûðúðL 	ùðmvù÷ v÷ vò vüs4  ‚Z:šV(›Z:ž$Z$ÁV+Á#Z$Á&V.Á'Z$ÂV1ÂZ$ÂV4ÂZ$Â4WÃV7ÃWÃ$V:Ã%WÃ<V=Ã=BWÆW ÆWÆ!Z:Æ,WÆ-Z:Æ2>Z$Ç1X)ÈX È	X)È!X#È"X)È9X&È:X)È>Z$ÉYÉ<Z$ÊZ$ÊAZ$Ë$Y!Ë%Z$Ë-A%Z$ÍY-Í-Y$Í.Y-ÎY'ÎY-ÎY*ÎY-Î#F?Z$Õ"ZÕ#Z$Õ'Z:Õ2Z!Õ36Z:Ö+Z$Ö.Z$Ö1Z$Ö4Z$Ö7WÖ:WÖ=W× W×Z:×	X×-X×<W?×=XØZ$ØZ:ØXØZ:ØXØZ$Ø X)Ø#X)Ø&X)Ø)	YØ2YÙZ$ÙYÙZ$Ù!Z$Ù$Y-Ù'Y-Ù*Y-Ù-	ZÙ6ZÚZ$ÚZÚZ$Ú!Z:Ú$Z7Ú*Z-Ú+Z7Ú2Z:c                  óž  — dd l } | j                  «       }|j                  dt        d¬«       |j	                  «       }t        «       }|sy 	 t        j                  t        |j                  ¬«      «      }t        d|› d�«       t        j                  |j                  «       «       y # t        j                  |j                  «       «       w xY w)Nr   z--pagesé   )ÚtypeÚdefault)rW   zDone: z records)ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsr   ÚasyncioÚrunrm   rW   r   ÚosrJ   Úfileno)rr   Úparserr   ÚlockÚns        r   Úmainr~   §   s•   € ÛØ×$Ñ$Ó&€FØ
×Ñ˜	¬°QÐÔ7Ø×ÑÓ€DÜ‹>€DÙØð Ü�K‰Kœ	¨¯
©
Ô3Ó4ˆÜ��q�c˜Ð"Ô#ä
�‰�—‘“ÕøŒ�‰�—‘“Õús   Á8B' Â'%CÚ__main__)i  )ro   )Ú__doc__Úsysry   rE   rw   Újsonr	   r   ÚpathÚinsertÚdirnameÚabspathÚ__file__Úcrawler_libr   rA   rB   r   rV   r>   r   rm   r~   Ú__name__© ó    r   ú<module>rŒ      s…   ðñ÷ /× .× .Ó .Ø ‡�‡���2—7‘7—?‘? 2§7¡7§?¡?°8Ó#<Ó=Ô >Ý (à!€Ø2€Ø#€	Ø9€	àv€óó$~òB ð ˆzÒÙ…Fð r‹   