Ë
    –„jl  ã                   ób   — d Z ddlZddlZddlZddlZddlZdZdZdZd„ Z	d„ Z
edk(  r e
«        yy)	uG  
njna å�—äº¬æ±ŸåŒ—æ–°åŒº å¯¼å…¥è„šæœ¬ v2 (æœ�åŠ¡å™¨ç«¯)
- ä¿�ç•™ HTML æ­£æ–‡ (ä¸� strip_html)
- site_name ä»Ž jsonl è¯»å�– (çŽ¯ä¿�/å…¬ç¤ºå…¬å‘Š å�Œæ �ç›®)
- æŒ‰ URL å…ˆ DELETE æ—§è¡Œå†� INSERT (è¦†ç›– strip_html æ—§ç‰ˆ)
ç”¨æ³•: python3 crawl_njna_xxgk_v2.py --file /path/njna_xxgk_hb.jsonl [--file2 /path/njna_xxgk_gsgg.jsonl]
é    Nz/root/search.dbu   æ”¿åºœä¿¡æ�¯å…¬å¼€zcrawl_njna_xxgk.pyc                 óè   — t        j                  d| xs d«      }|rVt        |j                  d«      «      dz  t        |j                  d«      «      dz  z   t        |j                  d«      «      z   S y)	u,   2026-08-14 â†’ 20260814 æ•°å­—, ä¾¿äºŽæŽ’åº�z(\d{4})-(\d{2})-(\d{2})Ú é   i'  é   éd   é   r   )ÚreÚmatchÚintÚgroup)Údate_strÚms     ú'/root/gov_crawler/crawl_njna_xxgk_v2.pyÚ	date_rankr      s[   € ä
�‰Ð+¨Xª^¸Ó<€AÙÜ�1—7‘7˜1“:‹ Ñ&¬¨Q¯W©W°Q«Z«¸3Ñ)>Ñ>ÄÀQÇWÁWÈQÃZÃÑPÐPØó    c                  óH  — t        j                  «       } | j                  dddd¬«       | j                  «       }|j                  }t        j                  t        d¬«      }|j                  d«       |j                  «       }d	x}x}}|D �]  }d	x}	x}
}t        |d
¬«      5 }|D �]±  }|j                  «       }|sŒ	 t        j                  |«      }|j                  dd«      }|j                  d«      xs dd d }|j                  d«      xs dd d }|j                  d«      xs dj                  «       }|s|dz  }Œš|j                  d«      xs dd d }|j                  d«      xs d}|j                  d«      xs g }|rt        j                   |d¬«      nd}d|v rdnd	}t#        |«      }t%        j&                  dd|«      }t%        j&                  dd|«      j                  «       d d xs |}	 |j                  d|f«       |j                  d ||||||||t(        t*        ||d!f«       |j,                  d	kD  r|	dz  }	n|
dz  }
|j3                  «        �Œ´ 	 d d d «       t1        d#t4        j6                  j9                  |«      › d$|	› d%|
› d&|› d'› d(�«       ||	z  }||
z  }||z  }�Œ! |j;                  «        t1        d)|› d%|› d&|› d*�«       y # t        $ r	 |dz  }Y �Œ?w xY w# t
        j.                  $ r}t1        d"|«       |dz  }Y d }~ŒÊd }~ww xY w# 1 sw Y   Œ¿xY w)+Nz--fileÚappendTu   JSONL æ–‡ä»¶ (å�¯å¤šæ¬¡ä¼ ))ÚactionÚrequiredÚhelpi"  )ÚtimeoutzPRAGMA busy_timeout=290000r   zutf-8)Úencodingr   Úurlr   Útitleiô  Údateé   ÚcontentÚsourcer   Ú	site_nameu.   å�—äº¬æ±ŸåŒ—æ–°åŒºç®¡å§”ä¼š-æ”¿åºœä¿¡æ�¯å…¬å¼€ÚattachmentsF)Úensure_asciiz<tablez<[^>]+>ú z\s+z$DELETE FROM gov_raw WHERE page_url=?a  INSERT INTO gov_raw
                           (site_name, source_url, page_url, title, publish_date, date_rank,
                            content, summary, category, script_name, attachments, has_table, status)
                           VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)Ú1z	  DB err:z  u	   : æ–°å¢ž u
    / æ›´æ–° u
    / è·³è¿‡ z (site=ú)u   === æ€»è®¡: æ–°å¢ž z ===)ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsÚfileÚsqlite3ÚconnectÚDB_PATHÚexecuteÚcursorÚopenÚstripÚjsonÚloadsÚ	ExceptionÚgetÚdumpsr   r	   ÚsubÚCATEGORYÚSCRIPTÚrowcountÚErrorÚprintÚcommitÚosÚpathÚbasenameÚclose)ÚapÚargsÚfilesÚconnÚcurÚtotal_addedÚtotal_updatedÚtotal_skippedr>   ÚaddedÚupdatedÚskippedÚfÚlineÚdr   r   r   r   r   r   ÚattÚatt_jsonÚ	has_tableÚdrÚsummaryÚes                              r   ÚmainrU      sC  € Ü	×	 Ñ	 Ó	"€BØ‡O�O�H X¸ÐC`€OÔaØ�=‰=‹?€DØ�I‰I€Eä�?‰?œ7¨CÔ0€DØ‡L�LÐ-Ô.Ø
�+‰+‹-€Cà23Ð3€KÐ3�- -Øó 1!ˆØ$%Ð%ˆÐ%�˜'Ü�$ Ô)ð +	¨QØó *�Ø—z‘z“|�ÙØðÜŸ
™
 4Ó(�Að —e‘e˜E 2Ó&�ØŸ™˜w›Ò-¨2¨t°Ð4�ØŸ™˜f›Ò+¨¨S¨bÐ1�ØŸ5™5 Ó+Ò1¨r×8Ñ8Ó:�ÙØ˜q‘L�GØØŸ%™% ›/Ò/¨R°°#Ð6�ØŸE™E +Ó.ÒbÐ2b�	Ø—e‘e˜MÓ*Ò0¨b�ÙBEœ4Ÿ:™: c¸Õ>È2�Ø!)¨WÑ!4™A¸!�	Ü˜t“_�ÜŸ&™& ¨S°'Ó:�ÜŸ&™& ¨¨gÓ6×<Ñ<Ó>¸tÀÐDÒMÈ�ð!à—K‘KÐ FÈÈÔOØ—K‘KðAð # C¨¨e°T¸2Ø  '¬8´V¸XÀyÐRUðWôð —|‘| aÒ'Ø ™
™à 1™˜ð —‘–ñU*÷+	ôX 	�”2—7‘7×#Ñ# DÓ)Ð*¨)°E°7¸*ÀWÀIÈZÐX_ÐW`Ð`gÐhqÐgrÐrsÐtÔuØ�uÑˆØ˜Ñ ˆØ˜Ñ Šðc1!ðd 	‡J�J„LÜ	Ð ˜}¨J°}°oÀZÐP]ÈÐ^bÐ
cÕdøôU !ò Ø˜q‘L�GÚðûôB —}‘}ò !Ü˜+ qÔ)Ø˜q‘L•Gûð!ú÷Q+	ð +	ús\   Â!LÂ<KÃD LÇ2AK'ÉLËK$	Ë LË#K$	Ë$LË'L	Ë:L	ÌLÌL	ÌLÌL!	Ú__main__)Ú__doc__r1   r*   r=   r%   r	   r,   r7   r8   r   rU   Ú__name__© r   r   ú<module>rZ      sJ   ðñó Û Û 	Û Û 	à
€à€Ø	€òò>eð@ ˆzÒÙ…Fð r   