Ë
    ¸¬uj  ã                   ó€  — 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mZ ddl	m	Z	m
Z
  ej                  dd«      ZdZdZ e	j                  «        e
d	¬
«      z
  j!                  d«      ZdZdZdddœZ ej*                  «       Zej.                  j1                  e«       ddlZd„ Zd„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)u�   æŸ³å·žå¸‚æŸ³æ±ŸåŒºäººæ°‘æ”¿åºœ â€” é€šçŸ¥å…¬å‘Šçˆ¬è™«
http://www.liujiang.gov.cn/xwzx/ljztgg/
å¼€æ™®äº‘CMS, createPageHTMLåˆ†é¡µ
é    N)ÚBeautifulSoup)ÚdatetimeÚ	timedeltaÚ	SEARCH_DBz/root/search.dbz'http://www.liujiang.gov.cn/xwzx/ljztgg/u   æŸ³å·žå¸‚æŸ³æ±ŸåŒºäººæ°‘æ”¿åºœiG  )Údaysz%Y-%m-%dé   éÈ   zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36zhttp://www.liujiang.gov.cn/)z
User-AgentÚRefererc                  óN  — 	 t        j                  t        «      } | j                  «       }|j	                  dt
        f«       |j                  «       D �ch c]  }|d   ’Œ	 }}| j                  «        |S c c}w # t        $ r"}t        d|› �«       t        «       cY d}~S d}~ww xY w)u   èŽ·å�–æ•°æ�®åº“ä¸­å·²æœ‰çš„URLz.SELECT page_url FROM gov_raw WHERE site_name=?r   u   [WARN] æ— æ³•æŸ¥è¯¢å·²æœ‰URL: N)Úsqlite3ÚconnectÚDB_PATHÚcursorÚexecuteÚ	SITE_NAMEÚfetchallÚcloseÚ	ExceptionÚprintÚset)ÚconnÚcÚrowÚexistingÚes        ú#/root/gov_crawler/crawl_liujiang.pyÚget_existing_urlsr      sŠ   € ð	Ü�‰œwÓ'ˆØ�K‰K‹MˆØ	�	‰	ÐBÄYÀLÔQØ&'§j¡j£lÖ3˜s�C˜“FÐ3ˆÐ3Ø�
‰
ŒØˆùò 4øô ò ÜÐ.¨q¨cÐ2Ô3Ü‹u�ûðús0   ‚AA9 ÁA4Á A9 Á4A9 Á9	B$ÂBÂB$ÂB$c                 óŠ  — 	 t        j                  t        «      }|j                  «       }|j	                  d| j                  «       ||j                  «       |j                  «       t        f«       |j                  }|j                  «        |j                  «        |S # t        $ r}t        d|› d|› �«       Y d}~yd}~ww xY w)u   å†™å…¥æ•°æ�®åº“z—
            INSERT OR IGNORE INTO gov_raw 
            (title, publish_date, content, page_url, site_name)
            VALUES (?, ?, ?, ?, ?)
        u   [ERROR] å†™å…¥å¤±è´¥ ú: Nr   )r   r   r   r   r   Ústripr   ÚrowcountÚcommitr   r   r   )ÚtitleÚdate_strÚcontentÚpage_urlr   r   Úaffectedr   s           r   Ú
store_itemr(   )   s    € ðÜ�‰œwÓ'ˆØ�K‰K‹MˆØ	�	‰	ð ð �k‰k‹m˜X w§}¡}£¸¿¹Ó8HÌ)ÐTô		Vð
 —:‘:ˆØ�‰ŒØ�
‰
ŒØˆøÜò ÜÐ% h Z¨r°!°Ð5Ô6Üûðús   ‚BB Â	CÂ'B=Â=Cc                 ó  — t        | d«      }g }|j                  d«      }|D ]ã  }|j                  d«      }|j                  dd¬«      }|r|sŒ,|j                  dd«      }|j	                  d	¬
«      }	|j	                  d	¬
«      }
|j                  d«      rt        j                  d«      dz   |dd z   }n>|j                  d«      r|}n*t        j                  d«      dz   |j                  d«      z   }|j                  |	|
|f«       Œå |S )u   è§£æž�åˆ—è¡¨é¡µúhtml.parserz7ul.list-group.list-Special > li.list-group-item.PC-SHOWÚaÚdivzlayout-fixed)Úclass_ÚhrefÚ T©r    z./ú/é   NÚhttp)
r   ÚselectÚfindÚgetÚget_textÚ
startswithÚBASE_URLÚrstripÚlstripÚappend)ÚhtmlÚpage_numÚsoupÚitemsÚli_tagsÚliÚa_tagÚdate_divr.   r#   r$   r&   s               r   Úparse_list_pagerE   ;   s  € ä˜˜}Ó-€DØ€Eà�k‰kÐSÓT€GØò 2ˆØ—‘˜“ˆØ—7‘7˜5¨�7Ó8ˆÙ™HØØ�y‰y˜ Ó$ˆØ—‘ T�Ó*ˆØ×$Ñ$¨4Ð$Ó0ˆð �?‰?˜4Ô ä—‘ sÓ+¨cÑ1°D¸¸°HÑ<‰HØ�_‰_˜VÔ$Ø‰Hä—‘ sÓ+¨cÑ1°D·K±KÀÓ4DÑDˆHà�‰�e˜X xÐ0Õ1ð%2ð( €Ló    c                 óü  — 	 t         j                  | d¬«      }d|_        |j                  dk7  ryt	        |j
                  d«      }d}|j                  dd	d
i¬«      }|r|j                  dd«      }|s%|j                  d«      }|r|j                  d¬«      }d}|j                  dd	di¬«      }|r#|j                  dd«      j                  «       dd }d}|j                  dd	di¬«      }	|	r|	j                  dd«      }|j                  d«      }
|
s|j                  d«      }
d}|
rt        |
«      }n|j                  d«      }
|
rt        |
«      }||||fS # t        $ r}t        d| › d|› �«       Y d}~yd}~ww xY w)u   èŽ·å�–è¯¦æƒ…é¡µå†…å®¹r   ©Útimeoutúutf-8r	   )NNNr*   r/   ÚmetaÚnameÚArticleTitle)Úattrsr%   Úh1Tr0   ÚPubDateNé
   ÚContentSourcezdiv.trs_editor_view.TRS_UEDITORzdiv.TRS_UEDITORzdiv.contentTextBoxu   [ERROR] èŽ·å�–è¯¦æƒ…å¤±è´¥ r   )NNNN)Úsessionr6   ÚencodingÚstatus_coder   Útextr5   r7   r    Ú
select_oneÚstrr   r   )ÚurlÚrespr?   r#   Ú
meta_titlerO   r$   Ú	meta_dateÚsourceÚmeta_sourceÚcontent_divr%   r   s                r   Úfetch_detailr`   W   s’  € ð0&Ü�{‰{˜3¨ˆ{Ó+ˆØˆŒØ×Ñ˜sÒ"Ø#Ü˜TŸY™Y¨Ó6ˆð ˆØ—Y‘Y˜v¨f°nÐ-E�YÓFˆ
ÙØ—N‘N 9¨bÓ1ˆEÙØ—‘˜4“ˆBÙØŸ™¨$˜Ó/�ð ˆØ—I‘I˜f¨V°YÐ,?�IÓ@ˆ	ÙØ —}‘} Y°Ó3×9Ñ9Ó;¸C¸RÐ@ˆHð ˆØ—i‘i ¨v°Ð.G�iÓHˆÙØ —_‘_ Y°Ó3ˆFð —o‘oÐ&GÓHˆÙØŸ/™/Ð*;Ó<ˆKàˆÙä˜+Ó&‰Gð Ÿ/™/Ð*>Ó?ˆKÙÜ˜kÓ*�à�h ¨Ð/Ð/øäò &ÜÐ+¨C¨5°°1°#Ð6Ô7Ü%ûð&ús   ‚-E °D&E Å	E;Å E6Å6E;c            
      óº  — t        d«       t        dt        › �«       t        «       } t        dt        | «      › �«       d}d}d}t	        t
        «      D �]…  }|r �n€|dk(  rt        }nd|› d�}t        d|d	z   › d
|› �«       	 t        j                  |d¬«      }d|_	        |j                  dk7  r"t        d|d	z   › d|j                  › d�«        �n
	 t        |j                  |«      }|st        d|d	z   › d�«        nÝt        d|d	z   › dt        |«      › d�«       |D ]¨  \  }	}
}|
t        k  rt        d|
› d|	d d › �«       |d	z  }d}Œ,|| v r|d	z  }Œ6t        |«      \  }}}}|s|	}|xs |	}|xs |
}|st        d|d d › �«       d}t        ||||«      }|dkD  r|d	z  }| j!                  |«       t#        j$                  d«       Œª |s�Œ{t        d«        n t        d«       t        d |› �«       t        d!|› �«       ||t&        d"œ}t        d#t)        j*                  |d¬$«      › �«       y # t        $ r}t        d|d	z   › d|› �«       Y d }~ Œxd }~ww xY w)%Nu7   [INFO] æŸ³å·žå¸‚æŸ³æ±ŸåŒº â€” é€šçŸ¥å…¬å‘Š çˆ¬è™«å�¯åŠ¨u   [INFO] æ—¶é—´é˜ˆå€¼: u   [INFO] å·²æœ‰URLæ•°: r   Fz-http://www.liujiang.gov.cn/xwzx/ljztgg/index_z.shtmlu
   [PAGE] ç¬¬é   u   é¡µ: r   rH   rJ   r	   u
   [WARN] ç¬¬u
   é¡µè¿”å›ž u   , å�œæ­¢ç¿»é¡µu   [ERROR] ç¬¬u   é¡µè¯·æ±‚å¤±è´¥: u   é¡µæ— æ•°æ�®, å�œæ­¢ç¿»é¡µu
   é¡µèŽ·å�– u    æ�¡u   [SKIP] æ—¥æœŸè¶…é™� r   é   Tu   [WARN] æ­£æ–‡ä¸ºç©º: r/   g333333Ó?u(   [INFO] é�‡åˆ°è¶…é™�æ—¥æœŸï¼Œå�œæ­¢ç¿»é¡µu   
[SUMMARY] å®Œæˆ�!u   [SUMMARY] æ–°å¢ž: u   [SUMMARY] è·³è¿‡: )ÚnewÚskippedÚ	site_namez	
[RESULT])Úensure_ascii)r   Ú	THRESHOLDr   ÚlenÚrangeÚ	MAX_PAGESr9   rS   r6   rT   rU   r   rE   rV   r`   r(   ÚaddÚtimeÚsleepr   ÚjsonÚdumps)Úexisting_urlsÚ	new_countÚ
skip_countÚ
stop_crawlr>   r&   rZ   r   r@   r#   r$   Ú
detail_urlÚdt_titleÚdt_dater]   r%   Úfinal_titleÚ
final_dater'   Úresults                       r   Úcrawlr{   ‹   sÉ  € Ü	ÐCÔEÜ	Ð!¤) Ð
-Ô.ä%Ó'€MÜ	Ð!¤# mÓ"4Ð!5Ð
6Ô7à€IØ€JØ€Jäœ)Ó$ó AˆÙÚð �qŠ=Ü‰HàFÀxÀjÐPVÐWˆHä�
˜8 A™:˜, e¨H¨:Ð6Ô7ð	Ü—;‘;˜x°�;Ó4ˆDØ#ˆDŒMØ×Ñ 3Ò&Ü˜
 8¨A¡: ,¨j¸×9IÑ9IÐ8JÈ.ÐYÔZÚð 'ô   §	¡	¨8Ó4ˆÙÜ�J˜x¨™z˜lÐ*DÐEÔFÙä�
˜8 A™:˜, j´°U³°¸DÐAÔBà+0ò  	Ñ'ˆE�8˜Zàœ)Ò#ÜÐ,¨X¨J°b¸¸sÀ¸¸ÐEÔFØ˜a‘�
Ø!�
Øð ˜]Ñ*Ø˜a‘�
Øô 2>¸jÓ1IÑ.ˆH�g˜v wÙØ �à"Ò+ eˆKØ Ò, HˆJáÜÐ-¨k¸#¸2Ð.>Ð-?Ð@ÔAà�ä! +¨z¸7ÀJÓOˆHØ˜!Š|Ø˜Q‘�	Ø×!Ñ! *Ô-ô �J‰J�s�OðA 	óD ÜÐ<Ô>ÙðCAôF 
ÐÔ!Ü	Ð˜y˜kÐ
*Ô+Ü	Ð˜z˜lÐ
+Ô,ð ØÜñ€Fô
 
ˆJ”t—z‘z &°uÔ=Ð>Ð
?Õ@øôw ò 	Ü�K ¨¡
˜|Ð+<¸Q¸CÐ@ÔAÝûð	ús   ÂAH2È2	IÈ;IÉIÚ__main__) Ú__doc__ÚosÚsysÚrero   rm   ÚrequestsÚbs4r   r   r   Úgetenvr   r9   r   ÚnowÚstrftimerh   Ú	PAGE_SIZErk   ÚHEADERSÚSessionrS   ÚheadersÚupdater   r   r(   rE   r`   r{   Ú__name__© rF   r   ú<module>r�      sÏ   ðñ÷ × Ó Û Ý ß (à
ˆ"�)‰)�KÐ!2Ó
3€Ø4€Ø,€	ØˆX�\‰\‹^™i¨UÔ3Ñ3×=Ñ=¸jÓI€	Ø€	Ø€	ð DØ,ñ€ð
 ˆ(×
Ñ
Ó
€Ø ‡�× Ñ �wÔ ã òòò$ò82&òhXAðt ˆzÒÙ	…Gð rF   