Ë
    $ñ£j~D  ã                   ó¸  — 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
mZ 	 ddlmZ ej                  j!                  dd«      ZdZdZd	Zd
ZdZdZedz   Z e
j2                  «        ed¬«      z
  j5                  d«      ZdddedœZdZ eej>                  «      D ]k  \  Z Z!e!jE                  d«      r	  e#e!jI                  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-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)"u  
crawl_ynwd.py â€” æ­¦å®šåŽ¿ï¼ˆæ¥šé›„ï¼‰é¡¹ç›®çŽ¯è¯„å®¡æ‰¹ç»“æžœ
https://ynwd.gov.cn/zfxxgk/fdzdgknr/zdmsjgysyjsxx/sthj/xmhpspjg.htm
CMS: æ‹“å°”æ€�(TRS) æ”¿åŠ¡å…¬å¼€å¹³å�°ï¼ˆé�™æ€� .htmï¼Œé�™æ€�åˆ†é¡µï¼‰
åˆ—è¡¨: <UL><li id="line_u6_N"><a href="../../../../info/2554/<id>.htm" title="å®Œæ•´æ ‡é¢˜">æ ‡é¢˜</a>
        <span>2026å¹´09æœˆ08æ—¥</span></li>â€¦</UL>   20 æ�¡/é¡µ
åˆ†é¡µ: é�™æ€�ã€Œä¸‹é¡µã€�é“¾æŽ¥ï¼ˆæ•°å­—å€’åº�ï¼‰ï¼Œå½“å‰�ç¬¬ 1 é¡µ = xmhpspjg.htmï¼Œ
      ç¬¬ 2 é¡µ = xmhpspjg/7.htm â€¦ï¼ˆå…± 151 æ�¡ / 8 é¡µï¼‰â†’ é€�é¡µè·Ÿéš�ã€Œä¸‹é¡µã€�é“¾æŽ¥
è¯¦æƒ…: /info/2554/<id>.htm
  æ ‡é¢˜: div.contentwarp > h1ï¼ˆå›žé€€ <title> åŽ»å�Žç¼€ï¼‰
  æ—¥æœŸ: div.label ã€Œæ—¥æœŸï¼šYYYYå¹´MMæœˆDDæ—¥ã€�
  æ­£æ–‡: div#vsb_content_500ï¼ˆå†…å�« div.v_news_contentï¼Œä¿�ç•™ <p>/<table>ï¼‰
é    N)ÚdatetimeÚ	timedelta)ÚBeautifulSoupÚ
JSONL_PATHÚ úutf-8u"   æ­¦å®šåŽ¿-é¡¹ç›®çŽ¯è¯„å®¡æ‰¹ç»“æžœu   äº‘å�—zcrawl_ynwd.pyu   é¡¹ç›®çŽ¯è¯„å®¡æ‰¹ç»“æžœzhttps://ynwd.gov.cnz0/zfxxgk/fdzdgknr/zdmsjgysyjsxx/sthj/xmhpspjg.htmiG  )Údaysz%Y-%m-%dzkMozilla/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ÚRefereré   z--pages=ú=é   z--pagesc                 óŽ  — | syt        j                  | «      } | j                  dd«      j                  dd«      j                  dd«      j                  dd«      } t        j                  dd| «      } t        j                  dd| «      } t        j                  dd| «      } t        j                  d	d
| «      } | j                  «       S )Nr   u   â€‹u   â€Œu   â€�u   ï»¿ú<[^>]+>u3   ^\s*(?:&middot;|Â·|\u00b7)?\s*(?:&nbsp;|\u00a0)?\s*u   ^[â€¢Â·]\s*ú\s+ú )Úhtml_libÚunescapeÚreplaceÚreÚsubÚstrip)Úts    úcrawl_ynwd.pyÚclean_titler   ;   s¦   € ÙØÜ×Ñ˜!Ó€AØ	�	‰	�(˜BÓ×'Ñ'¨°"Ó5×=Ñ=¸hÈÓK×SÑSÐT\Ð^`Óa€AÜ
�‰ˆz˜2˜qÓ!€AÜ
�‰ÐEÀrÈ1ÓM€AÜ
�‰ˆ~˜r 1Ó%€AÜ
�‰ˆv�s˜AÓ€AØ�7‰7‹9Ðó    c                 óØ  — t        t        «      }d }t        d«      D ]‘  }	 dd l}dd l}|j                  |j                  j                  «       |j                  | ||d¬«      }|j                  dk(  rt        |_        |j                  c S d|j                  z  }t        j                   d«       Œ“ t#        d	| d d
 ›d|›�d¬«       y # t        $ r}t        |«      d d }Y d }~ŒJd }~ww xY w)Né   r   F)ÚheadersÚtimeoutÚverifyéÈ   zHTTP %séP   é   z  [fetch fail] éZ   z -> T©Úflush)ÚdictÚHEADERSÚrangeÚrequestsÚurllib3Údisable_warningsÚ
exceptionsÚInsecureRequestWarningÚgetÚstatus_codeÚENCÚencodingÚtextÚ	ExceptionÚstrÚtimeÚsleepÚprint)	Úurlr    ÚhÚlast_errÚattemptr+   r,   ÚrÚes	            r   Úfetchr@   G   sÍ   € ÜŒW‹€AØ€HÜ˜“8ò ˆð		#ß$Ø×$Ñ$ W×%7Ñ%7×%NÑ%NÔOØ—‘˜S¨!°WÀU�ÓKˆAØ�}‰} Ò#Ü �”
Ø—v‘v’Ø  1§=¡=Ñ0ˆHô 	�
‰
�1�ðõ 
 s¨3¨B¢x±Ð
:À$ÕGØøô	 ò 	#Ü˜1“v˜c˜r�{�Hûð	#ús   ¡A'CÂCÃ	C)ÃC$Ã$C)c           
      ó.  ‡‡&‡'‡(— | sddg fS t        j                  dd| t         j                  ¬«      } 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 Š't        j                  dd| «      } t        �rŒ	 t	        | d	«      }|j                  d
d¬«      D �]›  }|d   }|j                  d«      s;|j                  d«      s*t        j                  d|t         j                  «      sd|v sŒU|xs dj                  «       }|j                  d«      xs |j                  d«      xs dj                  «       }|r(t        j                  d|t         j                  «      s|}n|xs |}|j                  d¬«      xs[ |j                  d«      xsH |j                  d«      xs5 t        j                  j                  |j                  d«      d   «      xs d}t        j                   j#                  ‰|«      }	‰&j%                  |	|f«       dt'        ‰'«      z  }
d|	›d|›d�‰'|
<   |j)                  |
«       �Œž |j                  d«      D ]`  }|j                  d«      xs |j                  d«      xs d}t        j                  d |t         j                  «      sŒQ|j+                  «        Œb |j                  d!«      D �]@  }|j                  d«      }|sŒ|j                  d¬«      rŒ+g }|D ]Ò  }|j                  d«      xs |j                  d«      xs d}|sŒ.t        j                   j#                  ‰|«      }	|j                  d"«      xs |j                  d«      xs dj                  «       xs5 t        j                  j                  |j                  d«      d   «      xs d#}|j%                  d|	›d|›d�«       ŒÔ |s�Œd$t'        ‰'«      z  }
d%d&j-                  |«      z   d'z   ‰'|
<   |j)                  |
«       �ŒC |j                  d«      D ]å  }|j                  d«      xs |j                  d«      xs d}|sŒ.t        j                   j#                  ‰|«      }	|j                  d"«      xs |j                  d«      xs dj                  «       xs5 t        j                  j                  |j                  d«      d   «      xs d#}d$t'        ‰'«      z  }
d(|	›d|›d)�‰'|
<   |j)                  |
«       Œç t/        |«      } ˆ&ˆ'ˆfd*„}t        j                  d+|| t         j                  t         j                  z  ¬«      } t        rÍ	 t	        | d	«      }|j                  d«      D ]%  }d,D ]  }|j2                  j5                  |d-«       Œ  Œ' |j                  d.«      D ]h  }|j                  d¬«      sD|j7                  d/«      s3|j7                  d«      s"|j7                  d
«      s|j+                  «        ŒY|j9                  «        Œj t/        |«      } g Š(ˆ(fd0„}t        j                  d1| t         j                  «      rd2nd}d-}|| k7  r@| }t        j                  d3|| t         j                  t         j                  z  ¬«      } || k7  rŒ@t        j                  d'd4| t         j                  ¬«      } t        j                  d5d6| t         j                  ¬«      } t        j                  d7d| t         j                  ¬«      } g }| j                  d8«      D �]¼  }|j                  «       }|sŒt        j                  d9d|«      }t        j                  d:d|«      }|j;                  d;d«      j;                  d<d=«      }t        j                  d>d=|«      }t        j                  d?d|«      }t=        j>                  |«      }|j;                  d@d=«      j;                  dAd=«      }t        j                  dBd|«      }|sŒæt        j                  dC|«      rŒý‰'jA                  «       D ]  \  }}|j;                  ||«      }Œ tC        ‰(«      D ]  \  }}|j;                  dD|z  |«      }Œ t        j                  dE|t         j                  «      s*t        j                  dF|t         j                  «      rdG|z  }|j%                  |j                  «       «       �Œ¿ d8j-                  |«      }‰'jA                  «       D ]  \  }}|j;                  ||«      }Œ tC        ‰(«      D ]  \  }}|j;                  dD|z  |«      }Œ t        j                  dHd|«      }t=        j>                  |«      }t        j                  dId6|«      }t        j                  dJd8|«      }t        j                  d>d=|«      }tE        «       g }!} |j                  d8«      D ]W  }t        j                  dKdt        j                  d?d|«      «      }
|
r|
| v rŒ6| jG                  |
«       |!j%                  |«       ŒY d8j-                  |!«      j                  «       }g tE        «       }#}"‰&D ].  \  }$}%|$|#v rŒ|#jG                  |$«       |"j%                  |$|%f«       Œ0 |||"fS # t0        $ r Y �Œ‹w xY w# t0        $ r Y �Œ‰w xY w)LuR   æ­£æ–‡ HTML æ¸…æ´—ï¼šä¿�ç•™ <p>/<table>ï¼Œé™„ä»¶è½¬ <p><a>ç»�å¯¹URL</a></p> æ®µè�½r   r   z
<!--.*?-->)Úflagsz<meta[^>]*>z<script[^>]*>.*?</script>z<style[^>]*>.*?</style>u   ã€�å­—å�·ï¼š[^ã€‘]*ã€‘úhtml.parserÚaT©ÚhrefrF   Úappendixzdata-appendixz&\.(pdf|docx?|xlsx?|zip|rar|wps|et|ofd)z/module/download/ÚoldsrcÚOLDSRCz^(?:javascript:|mailto:|tel:|#)©r   Ú_titleÚtitleú?õ   é™„ä»¶z__ATTACH__%d__ú	<a href="ú" target="_blank">ú</a>ÚimgÚsrcz(icons?/|fileTypeImages/icon_)ÚpÚaltu   å›¾ç‰‡z__IMG__%d__z<p>z<br/>z</p>z<p><a href="z</a></p>c                 óÀ  •— | j                  d«      }t        j                  d|t        j                  «      r2|j	                  «       j                  d«      rdS | j                  d«      S | 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%        ‰«      z  }d|›d|›d�‰|<   |S )Nr   z&^(?:javascript:|mailto:|tel:|s?ftp:|#)zjavascript:r   r   r$   r   u   ^é™„ä»¶[:ï¼š]\s*rM   rN   z__LINK__%d__rO   rP   rQ   )Úgroupr   ÚmatchÚIÚlowerÚ
startswithr   r   r   r   ÚosÚpathÚbasenameÚsplitÚurllibÚparseÚurljoinÚappendÚlen)	ÚmrF   ÚinnerÚtxtÚabs_urlÚkeyÚattachmentsÚlink_protectÚpage_urls	         €€€r   Ú
_link_replz html_to_text.<locals>._link_repl    s  ø€ Ø�w‰w�q‹zˆÜ�8‰8Ð=¸tÄRÇTÁTÔJØŸ™›×0Ñ0°Ô?�2ÐOÀQÇWÁWÈQÃZÐOØ—‘˜“
ˆÜ�f‰f�Z  UÓ+ˆÜ×Ñ Ó$×*Ñ*Ó,ˆÜ�f‰fÐ(¨"¨cÓ2×8Ñ8Ó:ˆÙÜ—'‘'×"Ñ" 4§:¡:¨c£?°1Ñ#5Ó6ÒB¸(ˆCÜ—,‘,×&Ñ& x°Ó6ˆØ×Ñ˜G S˜>Ô*Øœs <Ó0Ñ0‰ÚELÊcÐRˆ�SÑØˆ
r   z&<a\s[^>]*href="([^"]+)"[^>]*>(.*?)</a>)ÚstyleÚclassÚlangÚdirÚalignÚvalignÚwidthÚheightÚborderÚcellpaddingÚcellspacingNÚdivÚtablec                 óf   •— ‰j                  | j                  d«      «       dt        ‰«      dz
  z  S )Nr   ú__TBL__%d__r   )rc   rW   rd   )re   Útable_protects    €r   Ú	_tbl_replzhtml_to_text.<locals>._tbl_replÅ   s.   ø€ Ø×Ñ˜QŸW™W Q›ZÔ(Ø¤ MÓ 2°QÑ 6Ñ7Ð7r   z<table[^>]*>r   z<table(?:(?!<table).)*?</table>z</p>

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

z(?<=>)\s*[\r\n\t]+\s*z\s*[\r\n\t]+\s*(?=<)úú	r   z	[ \t]{2,}r   õ   Â z&nbsp;z[\s\u200b\u200c\u200d\ufeff]+u“   ^[ã€�\[ï¼ˆ(]?\s*(?:è¿”å›žé¡¶éƒ¨|å›žåˆ°é¡¶éƒ¨|è¿”å›žåˆ—è¡¨|æ‰“å�°(?:æœ¬é¡µ)?|å…³é—­(?:çª—å�£)?|åˆ†äº«|æ‰«ä¸€æ‰«|ä¸Šä¸€ç¯‡|ä¸‹ä¸€ç¯‡)\s*[ã€‘\]ï¼‰)]?$r|   ú<p[ >]ú<a[ >]z	<p>%s</p>z __(?:LINK|TBL|IMG|ATTACH)__\d+__z[ \t]+\nz\n{3,}r   )$r   r   ÚSrY   r   Úfind_allr0   Úsearchr   rX   Úget_textr\   r]   r^   r_   r`   ra   rb   rc   rd   Úreplace_withÚ	decomposeÚjoinr6   r5   ÚattrsÚpopÚfindÚunwrapr   r   r   ÚitemsÚ	enumerateÚsetÚadd))Úcontentrl   Ú_souprD   rF   Ú_hrefÚ_oldsrcÚ	real_hrefrg   rh   ri   rR   rS   rT   ÚimgsÚsrcsrm   ÚtagÚattrÚdr~   Ú	has_tableÚprevÚpartsÚblockÚbÚplainÚkÚvÚiÚtblÚoutÚseenÚfinalÚdedupÚseen_uÚur   rj   rk   r}   s)    `                                    @@@r   Úhtml_to_textr®   Z   s„	  û€ áØ�1�bˆyÐÜ�f‰f�] B¨´r·t±tÔ<€GÜ�f‰f�^ R¨¼¿¹Ô=€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à€KØ€Lä�f‰fÐ.°°GÓ<€Gæð5	Ü! '¨=Ó9ˆEØ—^‘^ C¨d�^Ó3ó (�Ø˜‘y�Ø—E‘E˜*Ô%¨¯©¨Ô)?ÜŸ9™9Ð%NÐPTÔVX×VZÑVZÔ[Ø.°$Ò6à!šZ R×.Ñ.Ó0�EØ Ÿu™u X›ÒG°!·%±%¸³/ÒGÀR×NÑNÓP�GÙ¤R§X¡XÐ.PÐRWÔY[×Y]ÑY]Ô%^Ø$)™	à$+Ò$4¨u˜	ØŸ:™:¨D˜:Ó1ò T°Q·U±U¸8³_ò TÈÏÉÈgËò TÜ Ÿg™g×.Ñ.¨y¯©¸sÓ/CÀAÑ/FÓGòTØKSð ä$Ÿl™l×2Ñ2°8¸YÓG�GØ×&Ñ&¨° ~Ô6Ø*¬S°Ó->Ñ>‘CÚQXÒZ]Ð(^�L Ñ%Ø—N‘N 3Ö'ð%(ð& —~‘~ eÓ,ò $�Ø—w‘w˜u“~Ò@¨¯©°Ó):Ò@¸b�Ü—9‘9Ð>ÀÄRÇTÁTÕJØ—M‘M•Oð$ð —^‘^ CÓ(ó ,�Ø—z‘z %Ó(�Ú §
¡
° 
Õ 6Ø�DØ#ò \˜Ø!Ÿg™g e›nÒG°·±¸Ó0AÒGÀR˜Ù"Ø$Ü"(§,¡,×"6Ñ"6°xÀÓ"E˜Ø"Ÿw™w u›~ÒG°·±¸Ó1AÒGÀR×NÑNÓPò OÜ!Ÿw™w×/Ñ/°·	±	¸#³¸qÑ0AÓBòOØFNð àŸšÊWÒVYÐ$ZÕ[ð\ó Ø+¬c°,Ó.?Ñ?˜Ø,1°G·L±LÀÓ4FÑ,FÈÑ,O˜ SÑ)ØŸ™ sÖ+ð,ð  —~‘~ eÓ,ò 	&�Ø—g‘g˜e“nÒ?¨¯©°Ó(9Ò?¸R�ÙØÜ Ÿ,™,×.Ñ.¨x¸Ó=�Ø—w‘w˜u“~Ò?¨¯©°Ó)9Ò?¸R×FÑFÓHò GÜ—w‘w×'Ñ'¨¯	©	°#«°qÑ(9Ó:òGØ>Fð à#¤c¨,Ó&7Ñ7‘ÚT[Ò]`Ð$a�˜SÑ!Ø× Ñ  Õ%ð	&ô ˜%“jˆGöô �f‰fÐ>À
Ø¤B§D¡D¬2¯4©4¡Kô1€Gõ ð	Ü! '¨=Ó9ˆEØ—~‘~ dÓ+ò .�ðOò .�Dà—I‘I—M‘M $¨Õ-ñ.ð.ð —^‘^ EÓ*ò �Ø—z‘z¨�zÔ-°a·f±f¸W´oØ !§¡ u¤°a·f±f¸S´kØ—K‘K•Mà—H‘H•Jðô ˜%“jˆGð €Mô8ô —Y‘Y˜°¼¿¹Ô>‘ÀA€IØ€DØ
�'Š/ØˆÜ—&‘&Ð;¸YØ ¬¯©¬r¯t©t©ô5ˆð �'‹/ô
 �f‰f�W˜j¨'¼¿¹Ô>€GÜ�f‰f�\ 4¨¼¿¹Ô=€GÜ�f‰fÐPÐRTØ¤B§D¡Dô*€Gð €EØ—‘˜vÓ&ó  ˆØ�K‰K‹MˆÙØÜ�F‰FÐ+¨R°Ó3ˆÜ�F‰FÐ*¨B°Ó2ˆØ�I‰I�d˜BÓ×'Ñ'¨¨cÓ2ˆÜ�F‰F�<  aÓ(ˆÜ—‘�z 2 qÓ)ˆÜ×!Ñ! %Ó(ˆØ—‘˜f cÓ*×2Ñ2°8¸SÓAˆÜ—‘Ð7¸¸UÓCˆÙØä�8‰8ð  kð  mrô  sØØ ×&Ñ&Ó(ò 	 ‰DˆAˆqØ—	‘	˜!˜Q“‰Að	 ä Ó.ò 	2‰FˆAˆsØ—	‘	˜-¨!Ñ+¨SÓ1‰Að	2ä�y‰y˜ A¤r§t¡tÔ,´·±¸9ÀaÌÏÉÔ1NØ˜a‘ˆAØ�‰�Q—W‘W“YÖð/ ð2 �+‰+�eÓ
€CØ×"Ñ"Ó$ò  ‰ˆˆ1Ø�k‰k˜!˜QÓ‰ð ä˜MÓ*ò 2‰ˆˆ3Ø�k‰k˜-¨!Ñ+¨SÓ1‰ð2ô �&‰&Ð4°b¸#Ó
>€CÜ
×
Ñ
˜CÓ
 €CÜ
�&‰&�˜d CÓ
(€CÜ
�&‰&�˜F CÓ
(€CÜ
�&‰&�˜s CÓ
(€Cä“%˜ˆ%€DØ�Y‰Y�vÓò ˆÜ�f‰f�V˜R¤§¡¨
°B¸Ó!:Ó;ˆÙ�c˜T‘kØØ�‰�ŒØ�‰�Q�ðð �+‰+�eÓ
×
"Ñ
"Ó
$€Càœ›ˆ6€EØò ‰ˆˆ1Ø�‰;ØØ�
‰
�1ŒØ�‰�a˜�VÕð	ð �	˜5Ð Ð øô] ò 	Úð	ûôF ò 	Úð	úsG   Ã-A3k7 Å!F+k7 Ì:k7 Ík7 ÍCk7 Ð8E k7 Ö>Cl ë7	lìlì	lìlc                 ó`  — g }d}t         s||fS t        | d«      }|j                  dt        j                  d«      ¬«      D �]T  }|j	                  dd¬«      }|sŒ|j                  d	«      xs d
j                  «       }t        |j                  d«      xs d
«      }|st        |j                  dd¬«      «      }|rt        |«      dk  rŒŠd|vrŒ�t        j                  j                  ||«      }	d
}
|j	                  d«      }|r}t        j                  d|j                  d¬«      «      }|rU|j                  d«      ›d|j                  d«      j                  d«      ›d|j                  d«      j                  d«      ›�}
|j!                  |	||
f«       �ŒW |j	                  dt        j                  d«      ¬«      }|rk|j	                  dd¬«      }|rV|j                  d	«      rE|d	   j#                  «       j%                  d«      s#t        j                  j                  ||d	   «      }||fS )u   è¿”å›ž (items, next_page_url)NrC   Úliz	^line_u6_©ÚidrD   TrE   rF   r   rL   r   rJ   r$   z/info/Úspanõ'   (\d{4})[å¹´/-](\d{1,2})[æœˆ/-](\d{1,2})r   ú-r   Úp_next©Úclass_Ú
javascript)r   r†   r   ÚcompilerŽ   r0   r   r   rˆ   rd   r`   ra   rb   r‡   rW   Úzfillrc   rZ   r[   )Ú	html_textrl   r�   Únext_urlÚsoupr°   rD   rF   rL   rh   ÚdateÚspÚdmÚnxts                 r   Ú
parse_listrÃ     sÞ  € à€EØ€HÝØ�hˆÐÜ˜ MÓ2€DØ�m‰m˜D¤R§Z¡Z°Ó%=ˆmÓ>ó -ˆØ�G‰G�C˜dˆGÓ#ˆÙØØ—‘�f“Ò# ×*Ñ*Ó,ˆÜ˜AŸE™E '›NÒ0¨bÓ1ˆÙÜ §
¡
¨3°d 
Ó ;Ó<ˆEÙœ˜E›
 QšØØ˜4ÑØÜ—,‘,×&Ñ& x°Ó6ˆØˆØ�W‰W�V‹_ˆÙÜ—‘ÐEÀrÇ{Á{ÐY]À{ÓG^Ó_ˆBÙØ%'§X¡X¨a¥[°"·(±(¸1³+×2CÑ2CÀAÕ2FÈÏÉÐQRË×HYÑHYÐZ[ÔH\Ð]�Ø�‰�g˜u dÐ+Ö,ð'-ð* �)‰)�F¤2§:¡:¨iÓ#8ˆ)Ó
9€CÙ
Ø�H‰H�S˜tˆHÓ$ˆÙ�—‘�v” q¨¡y§¡Ó'8×'CÑ'CÀLÔ'QÜ—|‘|×+Ñ+¨H°a¸±iÓ@ˆHØ�(ˆ?Ðr   c                 óB  — dx}x}}d }t         �r“	 t        | d«      }|j                  ddt        j                  dt        j                  «      i¬«      }|r|j                  d«      rt        |d   «      }|sR|j                  d«      }|r|j                  d	«      n|j                  d	«      }|rt        |j                  d
¬«      «      }|j                  dd¬«      }	|	r|t        j                  d|	j                  d«      «      }
|
rU|
j                  d«      ›d|
j                  d«      j                  d«      ›d|
j                  d«      j                  d«      ›�}|j                  d¬«      xs |j                  d«      }|r"dj                  d„ |j                  D «       «      }|syt        j                  d| t        j                  t        j                  z  «      }|rAt        |j                  d«      «      }t        j                   dd|«      j#                  «       }|}|smt        j                  d| «      }
|
rU|
j                  d«      ›d|
j                  d«      j                  d«      ›d|
j                  d«      j                  d«      ›�}|||fS # t        $ r Y Œúw xY w)Nr   rC   ÚmetaÚnameÚArticleTitle)rŒ   r”   zdiv.contentwarpÚh1TrJ   ry   Úlabelr·   r´   r   r   rµ   r$   r   Úvsb_content_500r±   zdiv.v_news_contentc              3   ó2   K  — | ]  }t        |«      –— Œ y ­w)N)r6   )Ú.0Úcs     r   ú	<genexpr>zparse_detail.<locals>.<genexpr>G  s   è ø€ Ò&C°!¤s¨1§vÑ&Cùs   ‚z<title>(.*?)</title>u!   [-|_].*(?:æ­¦å®š|äººæ°‘æ”¿åºœ).*$)r   rŽ   r   rº   rY   r0   r   Ú
select_onerˆ   r‡   rW   r»   r‹   Úcontentsr5   r…   r   r   )r¼   rl   rL   r¿   Úcontent_htmlr¾   ÚmtÚcwrÈ   ÚlabrÁ   Úelre   r   s                 r   Úparse_detailrÖ   2  s&  € Ø"$Ð$€EÐ$ˆD�<Ø€DÞð	Ü  ¨MÓ:ˆDØ—‘˜6¨&´"·*±*¸_ÌbÏdÉdÓ2SÐ)T�ÓUˆBÙ�b—f‘f˜YÔ'Ü# B y¡MÓ2�ÙØ—_‘_Ð%6Ó7�Ù&(�R—W‘W˜T”]¨d¯i©i¸«o�ÙÜ'¨¯©¸$¨Ó(?Ó@�EØ—)‘)˜E¨'�)Ó2ˆCÙÜ—Y‘YÐIÈ3Ï<É<ÐX[ÓK\Ó]�ÙØ)+¯©°!­°b·h±h¸q³k×6GÑ6GÈÕ6JÈBÏHÉHÐUVËK×L]ÑL]Ð^_ÔL`Ða�DØ—‘Ð/�Ó0ÒY°D·O±OÐDXÓ4YˆBÙØ!Ÿw™wÑ&C°r·{±{Ô&CÓC�ñ Ü�I‰IÐ-¨y¼"¿$¹$ÄÇÁ¹+ÓFˆÙÜ˜AŸG™G A›JÓ'ˆAÜ—‘Ð;¸RÀÓC×IÑIÓKˆAØˆEÙÜ�Y‰YÐAÀ9ÓMˆÙØ!#§¡¨!¥¨b¯h©h°q«k×.?Ñ.?ÀÕ.BÀBÇHÁHÈQÃK×DUÑDUÐVWÔDXÐYˆDØ�$˜Ð$Ð$øô ò 	Ùð	ús   ‘FJ Ê	JÊJc                  ó  — dd l } t        j                  j                  dt        j                  j                  t        j                  j                  t        «      «      «       ddlm	} t        dt        t        t        t        fz  d¬«       dx}x}}t        «       }g }g }t         }t#        dt        dz   «      D �]c  }	|st        d|	z  d¬«        �nN	 t%        |«      }
|
st        d	|	z  d¬«        �n-t)        |
|«      \  }}|st        d
|	z  d¬«        �n	t        d|	t+        |«      |dd  fz  d¬«       |D �]²  \  }}}||v rŒ|j-                  |«       |r|t        k  r|dz  }Œ/t%        |«      }|s|dz  }ŒBt/        ||«      \  }}}|s|}|s|}t1        ||«      \  }}}t+        t3        j4                  dd|«      j7                  «       «      }t3        j8                  d|t2        j:                  «       xr+ t3        j8                  d|t2        j:                  «       xr | }|dk  s|rt        d|d d z  d¬«       |dz  }�Œt        ||||d|t<        dt>        |r-tA        jB                  |D ��cg c]
  \  }}||dœ‘Œ c}}d¬«      nddœ}tD        r|jG                  |«       n|jG                  |«       |dz  }t        d|d d |||rdndfz  d¬«       tI        jJ                  d«       �Œµ tD        s|r ||t        ¬«       g }|}tI        jJ                  d«       �Œf tD        rltM        tD        dd¬ «      5 }|D ]+  }|jO                  tA        jB                  |d¬«      d!z   «       Œ- 	 d d d «       t        d"tD        t+        |«      fz  d¬«       n|r ||t        ¬«       t        d#|||fz  d¬«       t        d$t        z  d¬«       y # t&        $ r}t        d|	|fz  d¬«       Y d }~ ŒËd }~ww xY wc c}}w # 1 sw Y   Œ�xY w)%Nr   )Úpush_to_searchdbz"=== %s (%s) pages=%d cutoff=%s ===Tr&   r   zPage %d: no next link, stopzPage %d fetch error: %szPage %d: empty, stopzPage %d: no items, stopzPage %d: found %d items (%s)iØÿÿÿr   r   rƒ   r„   r   z  skip empty/placeholder: %sé(   )rL   r:   F)Úensure_ascii)Ú	site_nameÚ
source_urlr:   rL   Úpub_dateÚsummaryr”   ÚcategoryÚtagsÚ
group_namerj   u     + %s (%s, %då­—%s)é&   u   , è¡¨æ ¼gš™™™™™É?)Úbatch_labelg333333Ó?Úwr   )r3   r   zJSONL written: %s (%d rows)u*   æ–°å¢ž: %d | è·³è¿‡: %d | CUTOFFæˆªæ–­: %dz=== %s done ===)(r+   Úsysr]   Úinsertr\   ÚdirnameÚabspathÚ__file__Úcrawler_librØ   r9   Ú	SITE_NAMEÚSCRIPT_NAMEÚ_PAGESÚCUTOFFr’   ÚLIST_URLr*   r@   r5   rÃ   rd   r“   rÖ   r®   r   r   r   r‡   rY   ÚCATEGORYÚ
GROUP_NAMEÚjsonÚdumpsr   rc   r7   r8   ÚopenÚwrite)r+   rØ   Ú	new_countÚ
skip_countÚcutoff_countÚ	seen_urlsÚ
jsonl_rowsÚbatchr:   Úpager¼   r?   r�   r½   rh   rL   r¿   ÚdhtmlÚdtitleÚddaterÑ   r”   rž   ÚattsÚ	plain_lenÚno_parar­   r   ÚitemÚfÚrows                                  r   Úmainr  W  sè  € ÛÜ‡H�H‡O�O�A”r—w‘w—‘¤r§w¡w§¡´xÓ'@ÓAÔBÝ,ä	Ð
.´)¼[Ì&ÔRXÐ1YÑ
YØõð -.Ð-€IÐ-�
˜\Ü“€IØ€JØ€EÜ
€Cä�aœ !™Ó$ó >ˆÙÜÐ/°$Ñ6¸dÕCÚð	Ü˜c›
ˆIñ ÜÐ(¨4Ñ/°tÕ<ÚÜ$ Y°Ó4‰ˆˆxÙÜÐ+¨dÑ2¸$Õ?ÚÜÐ,°´c¸%³jÀ#ÀcÀdÀ)Ð/LÑLÐTXÕYà$)ó '	Ñ ˆG�U˜DØ˜)Ñ#ØØ�M‰M˜'Ô"Ù˜œvšØ Ñ!�ØÜ˜'“NˆEÙØ˜a‘�
ØÜ*6°u¸gÓ*FÑ'ˆF�E˜<ÙØ�ÙØ�Ü'3°LÀ'Ó'JÑ$ˆG�Y ÜœBŸF™F :¨r°7Ó;×AÑAÓCÓDˆIÜŸ9™9 Y°¼¿¹Ó>Ð>ò UÜ!Ÿy™y¨°G¼R¿T¹TÓBÐBòUØKTÀ}ð à˜1Š}¡ÜÐ4°v¸c¸r°{ÑBÈ$ÕOØ˜a‘�
Ùä&°gÀgØ¨U¸rØ"´À"Ü(áVZô  $Ÿz™zØ8<×=±°°1˜q¨Ó+Ó=ÈEõ SØ`bñˆDõ Ø×!Ñ! $Õ'à—‘˜TÔ"Ø˜‰NˆIÜÐ(¨F°3°B¨K¸À	Ù9B©:Èð,Lñ LØSWõYä�J‰J�sŽOðO'	õP ™eÙ˜U´Õ<ØˆEØˆÜ�
‰
�3Žð}>õ@ Ü”*˜c¨GÔ4ð 	D¸Ø!ò D�Ø—‘œŸ
™
 3°UÔ;¸dÑBÕCñD÷	Dô 	Ð+¬z¼3¸z»?Ð.KÑKÐSWÖXáÙ˜U´Õ<ä	Ð
6¸)ÀZÐQ]Ð9^Ñ
^ÐfjÕkÜ	Ð
œiÑ
'¨tÖ4øôI ò 	ÜÐ+¨t°Q¨iÑ7¸tÕDÝûð	üóT >÷"	Dð 	Dús*   ÃOÉ1O4"Ì91O:Ï	O1ÏO,Ï,O1Ï:PÚ__main__)é   )/Ú__doc__rå   r\   r   r7   rò   Úhtmlr   Úurllib.parser`   r   r   Úbs4r   ÚImportErrorÚenvironr0   r   r2   rë   rñ   rì   rð   ÚBASE_URLrï   ÚnowÚstrftimerî   r)   Ú
_MAX_PAGESr‘   Úargvr¦   rD   r[   Úintr_   Ú
ValueErrorrd   rí   r   r@   r®   rÃ   rÖ   r  Ú__name__© r   r   ú<module>r     s¢  ðñ÷ ?× >× >Ó >ß (ðÝ!ð �Z‰Z�^‰^˜L¨"Ó-€
Ø€à0€	Ø€
Ø€Ø%€Ø €ØÐHÑH€à
ˆ(�,‰,‹.™9¨'Ô2Ñ
2×	<Ñ	<¸ZÓ	H€ðCà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€ò	óò&q!òh!òH"%òJX5ðv ˆzÒÙ…Fð øð{ ò ØƒMðûð8 ò 	Ùð	ûð
 ò 	Ùð	ús5   ¨D8 Â8EÃ4EÄ8EÅEÅEÅEÅEÅE