Ë
    ¸¬uj#  ã                   ó  — d Z ddlZddlZddlZddlmZmZ  ej                  dd«      ZdZdZ	dZ
d	Zd
ddœZ ej                  «        ed¬«      z
  j                  d«      Z ede› �«       d„ Zd„ Zd„ Zedk(  r e«        yy)u›   è‘†å�ŽçŽ¯ä¿� - çŽ¯è¯„å…¬ç¤º çˆ¬è™«
Spring Boot + UEditor, POST /getNewsList API, 5æ�¡/é¡µ, å…±64é¡µ320æ�¡
æ­£æ–‡ content å­—æ®µç›´æŽ¥åœ¨åˆ—è¡¨APIè¿”å›žä¸­
é    N)ÚdatetimeÚ	timedeltaÚ	SEARCH_DBz/root/search.dbé   é   u   baohuahb.cn-çŽ¯è¯„å…¬ç¤ºzhttp://www.baohuahb.cnzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36z!application/x-www-form-urlencoded)z
User-AgentzContent-TypeiG  )Údaysz%Y-%m-%du   [info] æ—¥æœŸè¿‡æ»¤: >= c                  ó:  — 	 t        j                  t        › d�t        dt        dœt
        d¬«      } | j                  «       }|j                  d«      dk(  r!|d   d	   }t        d
|› d|d   d   › �«       |S 	 y# t        $ r}t        d|› �«       Y d}~yd}~ww xY w)u   èŽ·å�–æ€»é¡µæ•°ú/getNewsListé   ©Úcate_idÚcurrentPageÚ	totalPageé   ©ÚdataÚheadersÚtimeoutÚcodeÚ0r   r   u   [info] æ€»é¡µæ•°: u   , æ€»æ�¡æ•°: ÚtotalRowu   [error] èŽ·å�–æ€»é¡µæ•°å¤±è´¥: Nr   )
ÚrequestsÚpostÚBASE_URLÚCATE_IDÚ	PAGE_SIZEÚHEADERSÚjsonÚgetÚprintÚ	Exception)Úrr   ÚtotalÚes       ú#/root/gov_crawler/crawl_baohuahb.pyÚget_total_pagesr&      s¶   € ð5Ü�M‰MœX˜J lÐ3ÜØÜ"ñ;
ô  Bô	(ˆð
 �v‰v‹xˆØ�8‰8�FÓ˜sÒ"Ø˜‘L Ñ-ˆEÜÐ& u g¨]¸4À¹<È
Ñ;SÐ:TÐUÔVØˆLð #ð øô ò 5ÜÐ/°¨sÐ3×4Ð4Øûð5ús   ‚A4A9 Á9	BÂBÂBc                 ó,  — 	 t        j                  t        › d�t        | t        dœt
        d¬«      }|j                  «       }|j                  d«      dk(  r|d   j                  dg «      S 	 g S # t        $ r}t        d	| › d
|› �«       Y d}~g S d}~ww xY w)u'   èŽ·å�–å�•é¡µåˆ—è¡¨ï¼Œè¿”å›žæ�¡ç›®åˆ—è¡¨r
   r   r   r   r   r   r   Úlistu   [error] ç¬¬u   é¡µè¯·æ±‚å¤±è´¥: N)
r   r   r   r   r   r   r   r   r!   r    )Úpager"   r   r$   s       r%   Ú
fetch_pager*   .   s¤   € ð
8Ü�M‰MœX˜J lÐ3ÜØÜ"ñ;
ô  Bô	(ˆð
 �v‰v‹xˆØ�8‰8�FÓ˜sÒ"Ø˜‘<×#Ñ# F¨BÓ/Ð/ð #ð €Iøô ò 8Ü�˜D˜6Ð!2°1°#Ð6×7Ð7Ø€Iûð8ús   ‚A(A. Á.	BÁ7BÂBc                  óÊ  — dd l } t        «       }|s t        d«       t        j                  d«       | j                  t        «      }|j                  «       }|j                  d«       d}d}d}t        d|dz   «      D �]  }t        |«      }|st        d|› d�«       Œ!d}	d}
|D ]±  }|j                  dd«      }|t        k  r|
dz  }
Œ$|j                  d	d«      j                  «       }|j                  d
d«      j                  «       }t        › |j                  dd«      › �}|}	 |j                  d|||t        ||df«       |j                   dkD  r|	dz  }	Œ³ |j%                  «        ||	z  }||
z  }t        d|› d|› d|	› d|
› d|› d�«       �Œ |j'                  «        t        d|› d|› d�«       t        d|› �«       y # t"        $ r}t        d|› �«       Y d }~�Œ:d }~ww xY w)Nr   u&   [error] æ— æ³•èŽ·å�–æ€»é¡µæ•°ï¼Œé€€å‡ºr   zPRAGMA journal_mode=WALÚ u
   [warn] ç¬¬u   é¡µæ— æ•°æ�®ï¼Œè·³è¿‡Úcreate_timeÚtitleÚcontentÚ	detailUrlz»
                    INSERT OR IGNORE INTO gov_raw (page_url, title, content, site_name, publish_date, summary, category)
                    VALUES (?, ?, ?, ?, ?, ?, ?)
                u   çŽ¯è¯„å…¬ç¤ºu   [error] å…¥åº“å¤±è´¥: z[page ú/z] +z new, z skipped, cumulative: z newu   
[å®Œæˆ�] è‘†å�ŽçŽ¯ä¿�: æ–°å¢ž u    æ�¡, è·³è¿‡ u    æ�¡(è¶…3å¹´)u   [æ��ç¤º] æœ€è¿‘æ—¥æœŸ: )Úsqlite3r&   r    ÚsysÚexitÚconnectÚDB_PATHÚcursorÚexecuteÚranger*   r   ÚCUTOFF_DATEÚstripr   Ú	SITE_NAMEÚrowcountr!   ÚcommitÚclose)r2   Útotal_pagesÚconnÚcÚ	new_countÚ
skip_countÚ	last_dater)   ÚitemsÚpage_newÚ	page_skipÚitemÚpub_dater.   r/   Úpage_urlr$   s                    r%   ÚmainrL   >   s  € Ûä!Ó#€KÙÜÐ6Ô7Ü�‰�Œà�?‰?œ7Ó#€DØ�‰‹€AØ‡I�IÐ'Ô(à€IØ€JØ€Iä�a˜ q™Ó)ó  pˆÜ˜4Ó ˆÙÜ�J˜t˜fÐ$9Ð:Ô;ØàˆØˆ	Øò 	4ˆDØ—x‘x ¨rÓ2ˆHØœ+Ò%Ø˜Q‘�	Øà—H‘H˜W bÓ)×/Ñ/Ó1ˆEØ—h‘h˜y¨"Ó-×3Ñ3Ó5ˆGÜ"˜ D§H¡H¨[¸"Ó$=Ð#>Ð?ˆHØ ˆIð4Ø—	‘	ð ð   w´	¸8ÀUÈNÐ[ô]ð —:‘: ’>Ø ‘M�Høð#	4ð* 	�‰ŒØ�XÑˆ	Ø�iÑˆ
Ü��t�f˜A˜k˜]¨#¨h¨Z°v¸i¸[ÐH^Ð_hÐ^iÐimÐnÖoðA pðD 	‡J�J„LÜ	Ð,¨Y¨K°}ÀZÀLÐP]Ð
^Ô_Ü	Ð# I ;Ð
/Õ0øô ò 4ÜÐ.¨q¨cÐ2×3Ò3ûð4ús   Ä$1G Ç 	G"Ç	GÇG"Ú__main__)Ú__doc__Úosr3   r   r   r   Úgetenvr6   r   r   r<   r   r   ÚnowÚstrftimer:   r    r&   r*   rL   Ú__name__© ó    r%   ú<module>rV      s§   ðñó
 
Û 
Û ß (à
ˆ"�)‰)�KÐ!2Ó
3€Ø
€Ø€	Ø&€	Ø#€ð DØ7ñ€ð ˆx�|‰|‹~¡	¨uÔ 5Ñ5×?Ñ?À
ÓK€Ù Ð   Ð.Ô /òò$ò 41ðn ˆzÒÙ…Fð rU   