Ë
    Iˆ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dZ ej                  dd«      Z
d„ Zd„ Zedk(  r e«        yy)	uµ  crawl_yanshou100_daily.py - yanshou100 æ—¥è·‘åŒ…è£…: æŠ“å�– + å¯¼å…¥ä¸€ä½“

è§£å†³æ—¥è·‘"å�ªæŠ“ä¸�å¯¼å…¥/--out è¦†ç›–/æ— åŽ»é‡�"ä¸‰ä¸ªé—®é¢˜:
1. --type åŒºåˆ†æ �ç›®, --out å�„è‡ªç‹¬ç«‹æ–‡ä»¶ (yanshou/qita äº’ä¸�è¦†ç›–)
2. è‡ªåŠ¨ä»Ž DB è¯»å·²æœ‰ itemId ä½œä¸º --existing åŽ»é‡�, å�ªæŠ“æ–°å¢ž
3. æŠ“å®Œç«‹å�³ import_jsonl_raw.py å¯¼å…¥ (ä¿�ç•™ HTML/è¡¨æ ¼/é™„ä»¶)

ç”¨æ³•: python3 crawl_yanshou100_daily.py --type yanshou|qita [--pages N]
é    Nz/root/gov_crawlerÚ	SEARCH_DBz/root/search.dbc                  óf  — t        «       } 	 t        j                  t        «      }|j	                  d«      D ]A  \  }t        j                  d|xs d«      }|sŒ"| j                  |j                  d«      «       ŒC |j                  «        | S # t        $ r}t        d|› �d¬«       Y d}~| S d}~ww xY w)	u9   ä»Ž gov_raw æ��å�–å·²æœ‰ itemId (page_url çš„ id= å�‚æ•°)zRSELECT DISTINCT page_url FROM gov_raw WHERE page_url LIKE '%item_detail.html?id=%'zid=(\d+)Ú é   u     [WARN] è¯»å·²æœ‰IDå¤±è´¥: T©ÚflushN)ÚsetÚsqlite3ÚconnectÚDBÚexecuteÚreÚsearchÚaddÚgroupÚcloseÚ	ExceptionÚprint)ÚidsÚconnÚuÚmÚes        ú+/root/gov_crawler/crawl_yanshou100_daily.pyÚget_existing_idsr      s¤   € ä
‹%€Cð
>Ü�‰œrÓ"ˆØ—L‘LØ`ó
ò 	$‰DˆQô —	‘	˜+ q¢w¨BÓ/ˆAÚØ—‘˜Ÿ™ ›
Õ#ð	$ð 	�
‰
Œð €Jøô ò >ÜÐ,¨Q¨CÐ0¸×=Ñ=Ø€Jûð>ús   ŒAB Á2B Â	B0ÂB+Â+B0c            
      ód  — t        j                  «       } | j                  ddd¬«       | j                  dt        d¬«       | j	                  «       }t        «       }d|j                  › d	�}t        |d
d¬«      5 }t        |«      D ]  }|j                  |dz   «       Œ 	 d d d «       t        dt        |«      › d|› �d¬«       d|j                  › d�}t        j                  j                  |«      rt        j                  |«       t         j"                  t        j                  j%                  t&        d«      dt)        |j*                  «      d|j                  d|d|g
}t        ddj%                  |«      › �d¬«       t-        j.                  |ddd¬«      }t        |j0                  r|j0                  dd  ndd¬«       |j2                  dk7  r?t        d|j2                  › d|j4                  d d  › �d¬«       t!        j6                  d!«       t        j                  j                  |«      r"t        j                  j9                  |«      dk(  rt        d"d¬«       y t;        d#„ t        |d¬«      D «       «      }	t        d$|› d%|	› d&�d¬«       t         j"                  t        j                  j%                  t&        d'«      |g}
t        d(dj%                  |
«      › �d¬«       t-        j.                  |
ddd)¬«      }t        |j0                  r|j0                  d d  ndd¬«       |j2                  dk7  r?t        d*|j2                  › d|j4                  d d  › �d¬«       t!        j6                  d!«       t        j                  |«       t        d+|j                  › d,|	› d-�d¬«       y # 1 sw Y   �ŒxY w).Nz--typeÚyanshouzyanshou/qita/jiance/fangan)ÚdefaultÚhelpz--pagesé   )Útyper   z/tmp/ys100_existing_z.txtÚwzutf-8)Úencodingú
u   å·²æœ‰ itemId: u	    ä¸ª â†’ Tr   z/tmp/ys100_z.jsonlzcrawl_yanshou100.pyz--outz
--existingu   â–¶ æŠ“å�–: ú i°  )Úcapture_outputÚtextÚtimeouti0øÿÿr   r   u   âœ— æŠ“å�–å¤±è´¥ exit=z stderr=iþÿÿr   u9   âš  JSONL ä¸ºç©º (æ— æ–°å¢žæˆ–æŠ“å�–å¤±è´¥), è·³è¿‡å¯¼å…¥c              3   óB   K  — | ]  }|j                  «       sŒd –— Œ y­w)r   N)Ústrip)Ú.0Ú_s     r   ú	<genexpr>zmain.<locals>.<genexpr>F   s   è ø€ ÒE�!¸1¿7¹7½9ŒAÑEùs   ‚˜zJSONL: z (u    æ�¡)zimport_jsonl_raw.pyu   â–¶ å¯¼å…¥: iX  u   âœ— å¯¼å…¥å¤±è´¥ exit=u   âœ… u    æ—¥è·‘å®Œæˆ�: æŠ“u   æ�¡ â†’ å·²å¯¼å…¥)ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsr   r!   ÚopenÚsortedÚwriter   ÚlenÚosÚpathÚexistsÚremoveÚsysÚ
executableÚjoinÚBASE_DIRÚstrÚpagesÚ
subprocessÚrunÚstdoutÚ
returncodeÚstderrÚexitÚgetsizeÚsum)ÚapÚargsÚexistingÚexisting_fileÚfÚiÚout_fileÚ	crawl_cmdÚrÚnÚimp_cmdÚr2s               r   ÚmainrU   !   sú  € Ü	×	 Ñ	 Ó	"€BØ‡O�O�H iÐ6R€OÔSØ‡O�O�I¤C°€OÔ3Ø�=‰=‹?€DäÓ!€HØ*¨4¯9©9¨+°TÐ:€MÜ	ˆm˜S¨7Ô	3ð °qÜ˜Ó!ò 	ˆAØ�G‰G�A˜‘HÕñ	÷ô 
ˆOœC ›M˜?¨)°M°?Ð
CÈ4ÕPà˜TŸY™Y˜K vÐ.€Hä	‡w�w‡~�~�hÔÜ
�	‰	�(Ôô 	�‰œŸ™Ÿ™¤XÐ/DÓEØ”3�t—z‘z“?Ø�$—)‘)Ø�Ø�mð€Iô 
ˆL˜Ÿ™ )Ó,Ð-Ð
.°dÕ;Ü�‰�y°¸DÈ$ÔO€AÜ	˜aŸhšhˆ!�(‰(�5�6Ñ
¨B°dÕ;Ø‡|�|�qÒÜÐ& q§|¡| n°H¸Q¿X¹XÀdÀe¸_Ð<MÐNÐVZÕ[Ü�‰�Œä�7‰7�>‰>˜(Ô#¤r§w¡w§¡°xÓ'@ÀAÒ'EÜÐIÐQUÕVØäÑE”t˜H¨wÔ7ÔEÓE€AÜ	ˆG�H�:˜R ˜s %Ð
(°Õ5ô �~‰~œrŸw™wŸ|™|¬HÐ6KÓLÈhÐW€GÜ	ˆL˜Ÿ™ 'Ó*Ð+Ð
,°DÕ9Ü	�‰˜°¸4ÈÔ	M€BÜ	˜bŸišiˆ"�)‰)�D�EÑ
¨R°tÕ<Ø	‡}�}˜ÒÜÐ& r§}¡} o°X¸b¿i¹iÈÈÐ>NÐ=OÐPÐX\Õ]Ü�‰�Œô ‡I�IˆhÔÜ	ˆD�—‘�Ð-¨a¨SÐ0AÐ
BÈ$ÖO÷Wñ ús   Á9%N%Î%N/Ú__main__)Ú__doc__r.   r7   r   r
   rA   r;   Újsonr>   Úgetenvr   r   rU   Ú__name__© ó    r   ú<module>r]      sP   ðñ÷ 8× 7× 7Ó 7à€Ø€R‡Y�Yˆ{Ð-Ó.€òò 3Pðj ˆzÒÙ…Fð r\   