Ë
    5ß©jt&  ã                   ó¬  — 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mZ ej                  j                  ej                  j                  e«      «      Zej                  j                  de«       ddlmZ ddlZdZddiZdZd	Z ej,                  «       Zej0                  j3                  e«       h d
£Zd„ Zdd„Zd„ Zd„ Zd„ Zdd„Z d„ Z!e"dk(  r e!«        yy)uŒ   
çˆ¬è™«ï¼šå¯¿å…‰å¸‚äººæ°‘æ”¿åºœ - çŽ¯è¯„å…¬ç¤º
ç«™ç‚¹ï¼šwww.shouguang.gov.cn
CMSï¼šå¯¿å…‰æ”¿åºœé—¨æˆ·ï¼ˆé�™æ€�åˆ†é¡µ + TRS_Editor æ­£æ–‡ï¼‰
é    N©ÚBeautifulSoup)Úpush_to_searchdbu   å¯¿å…‰å¸‚-çŽ¯è¯„å…¬ç¤ºz
User-AgentzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36zhttps://www.shouguang.gov.cnz&https://www.shouguang.gov.cn/news/hpgs>)   ÚpÚddÚdlÚdtÚh1Úh2Úh3Úh4Úh5Úh6ÚhrÚliÚolÚtdÚthÚtrÚulÚdivÚnavÚpreÚformÚmainÚasideÚtableÚtbodyÚtfootÚtheadÚcenterÚdialogÚfigureÚfooterÚheaderÚhgroupÚaddressÚarticleÚcaptionÚdetailsÚsectionÚfieldsetÚ
blockquoteÚ
figcaptionc                 óÒ   ‡‡‡— | €yddl }ddlmŠ g Šˆˆˆfd„Š ‰| «       dj                  ‰«      }|j	                  dd|«      }|j	                  dd	|«      }|j                  «       S )
ul   å�—çº§è¾¹ç•Œå‡ºæ�¢è¡Œã€�è¡Œå†…èŠ‚ç‚¹ç›´æŽ¥æ‹¼æŽ¥ã€�<br> å‡ºæ�¢è¡Œï¼ˆâ‰ˆ æµ�è§ˆå™¨çœ‹åˆ°çš„æ�¢è¡Œç»“æž„ï¼‰ã€‚NÚ r   )ÚNavigableStringc                 óF  •— | j                   D ]‘  }t        |‰«      r‰j                  t        |«      «       Œ*t	        |dd «      dk(  r‰j                  d«       ŒLt	        |dd «      t
        v r+‰j                  d«        ‰|«       ‰j                  d«       ŒŠ ‰|«       Œ“ y )NÚnameÚbrú
)ÚchildrenÚ
isinstanceÚappendÚstrÚgetattrÚ_BLOCK_TAGS)ÚnodeÚchr1   ÚoutÚwalks     €€€úcrawl_shouguang.pyr?   zbody_text.<locals>.walk1   s„   ø€ Ø—-‘-ò 
	ˆBÜ˜"˜oÔ.Ø—
‘
œ3˜r›7Õ#Ü˜˜V TÓ*¨dÒ2Ø—
‘
˜4Õ Ü˜˜V TÓ*¬kÑ9Ø—
‘
˜4Ô Ù�R”Ø—
‘
˜4Õ á�R•ñ
	ó    z[ \t\r\f\v]*\n[ \t\r\f\v]*r5   z\n{3,}ú

)ÚreÚbs4r1   ÚjoinÚsubÚstrip)ÚelÚ_reÚtr1   r>   r?   s      @@@r@   Ú	body_textrK   )   sb   ú€ à	€zØÛÝ#Ø
€Cöñ 	ˆ„HØ
�‰�‹€AØ�‰Ð-¨t°QÓ7€AØ�‰�	˜6 1Ó%€AØ�7‰7‹9ÐrA   c                 ó0  — t        |«      D ]$  }	 t        j                  | d¬«      }d|_        |c S  y # t        j
                  t        j                  f$ r>}||dz
  k  rt        j                  d«       Y d }~Œmt        d| › d|› �«       Y d }~ y d }~ww xY w)Né   )Útimeoutzutf-8é   é   u       âš ï¸� è¯·æ±‚å¤±è´¥(z): )
ÚrangeÚsessionÚgetÚencodingÚrequestsÚConnectionErrorÚTimeoutÚtimeÚsleepÚprint)ÚurlÚmax_retriesÚattemptÚrÚes        r@   Úsafe_getr`   D   s”   € Ü˜Ó%ò 
ˆð		Ü—‘˜C¨�Ó,ˆAØ ˆAŒJØŠHð	
ð øô ×(Ñ(¬(×*:Ñ*:Ð;ò 	Ø˜ q™Ò(Ü—
‘
˜1”ÜÜÐ,¨S¨E°°Q°CÐ8Ô9Ýûð	ús   �4´#BÁBÁ9BÂBc                 óÄ  — | dk(  r
t         › d�}nt         › d| dz
  › d�}t        |«      }|€g dfS t        |j                  d«      }d}|j	                  dt        j                  d	«      ¬
«      }|D ]D  }t        j                  d	|j                  xs d«      }|sŒ*t        |j                  d«      «      } n g }|j                  d«      }	|	sg |fS |	j	                  dd¬«      D ]ø  }
|
j                  dd¬«      }|sŒ|j                  dd«      }|j                  dd«      xs |j                  d¬«      }|r|sŒV|j                  d«      rt         dz   |dd z   }n8|j                  d«      s'|j                  d«      r
t        |z   }nt         dz   |z   }|
j                  d«      }|r|j                  d¬«      nd}|j!                  |j#                  «       ||dœ«       Œú ||fS )u   èŽ·å�–åˆ—è¡¨é¡µrO   z/index.htmlz/index_z.htmlNr   úhtml.parserÚscriptzcountPage\s*=\s*(\d+))Útextr0   r   r   F)Ú	recursiveÚaT©Úhrefrh   Útitle©rG   ú./ú/rP   ÚhttpÚspan)ri   r[   Údate)ÚLIST_URLr`   r   rd   Úfind_allrC   ÚcompileÚsearchÚstringÚintÚgroupÚfindrS   Úget_textÚ
startswithÚBASE_URLr8   rG   )Úpager[   r^   ÚsoupÚtotal_pagesÚscript_tagsÚstÚmÚitemsr   r   Úa_tagrh   ri   Ú	date_spanÚdate_strs                   r@   Úfetch_list_pager…   S   sà  € àˆq‚yÜ�
˜+Ð&‰ô �
˜' $ q¡& ¨Ð/ˆä�‹€AØ€yØ�1ˆuˆä˜Ÿ™ Ó/€Dð €KØ—-‘- ¬r¯z©zÐ:RÓ/S�-ÓT€KØò ˆÜ�I‰IÐ.°·	±	²¸RÓ@ˆÚÜ˜aŸg™g a›j›/ˆKÙð	ð €Eà	�‰�4‹€BÙØ�;ˆÐà�k‰k˜$¨%ˆkÓ0ò NˆØ—‘˜ $�Ó'ˆÙØØ�y‰y˜ Ó$ˆØ—	‘	˜' 2Ó&ÒD¨%¯.©.¸t¨.Ó*DˆÙ™DØð �?‰?˜4Ô Ü˜c‘> D¨¨ HÑ,‰DØ—‘ Ô(Ø�‰˜sÔ#Ü $‘‘ä #‘~¨Ñ,�à—G‘G˜F“Oˆ	Ù5>�9×%Ñ%¨DÐ%Ô1ÀBˆà�‰˜uŸ{™{›}°TÀ8ÑLÕMð+Nð. �+ÐÐrA   c                 óh  — t        | «      }|€yt        |j                  d«      }|j                  ddd¬«      }|s5|j                  dt	        j
                  dt        j                  «      ¬	«      }|s5|j                  dt	        j
                  d
t        j                  «      ¬«      }|sy|j                  dt	        j
                  dt        j                  «      ¬	«      }|r|}n|}g }|j                  D ]Œ  }|j                  dk(  r(|j                  dd¬«      }|sŒ(|j                  |«       Œ:|j                  dk(  r)t        t        |«      «      }	|	sŒ`|j                  |	«       Œr|j                  dv sŒ�t        ||«       ŒŽ |st        |«      }|r|g}dj                  |«      }
t	        j                   dd|
«      }
g }|j                  dt	        j
                  dt        j                  «      ¬	«      }|s5|j                  dt	        j
                  dt        j                  «      ¬	«      }|rì|j#                  dd¬«      D ]Ö  }|j%                  dd«      }|j                  d¬«      xs t&        j(                  j+                  |«      }|j-                  d«      r
t.        |z   }n\|j-                  d«      r| j1                  dd«      d   dz   |dd z   }n,|j-                  d «      s| j1                  dd«      d   dz   |z   }|j                  d!|› d"|› d#�«       ŒØ |r|
d$d%j                  |«      z   z  }
|
S )&u   èŽ·å�–è¯¦æƒ…é¡µæ­£æ–‡Nr0   rb   r   ÚcontentÚmainText)Úclass_Úidzcontent|article|nrzw|zoom)r‰   zcontent|article|zoom|main)rŠ   zTRS_Editor|TRS_UEDITORr   ú Trj   r   ©r   r+   r(   rB   z3(?<=[\u4e00-\u9fff])[ \t\u3000]+(?=[\u4e00-\u9fff])zattach|file|downr   zattach|filerf   rg   rh   rl   rk   rO   r   rP   rm   ú[z](ú)u   

**é™„ä»¶ï¼š**
r5   )r`   r   rd   rw   rC   rr   ÚIr6   r3   rx   r8   Úhtml_table_to_htmlr9   Ú_extract_nodesrK   rE   rF   rq   rS   ÚosÚpathÚbasenamery   rz   Úrsplit)r[   r^   r|   Úcontent_divÚeditorÚtargetÚpartsÚchildrd   ÚmdÚbodyÚattachment_linksÚatt_divrf   rh   s                  r@   Úfetch_detailrŸ   Š   sá  € ä�‹€AØ€yØä˜Ÿ™ Ó/€Dð —)‘)˜E¨)¸
�)ÓC€KÙØ—i‘i ¬b¯j©jÐ9UÔWY×W[ÑW[Ó.\�iÓ]ˆÙØ—i‘i ¬"¯*©*Ð5QÔSU×SWÑSWÓ*X�iÓYˆÙØð ×Ñ˜e¬B¯J©JÐ7PÔRT×RVÑRVÓ,WÐÓX€FÙØ‰àˆà€EØ—‘ò 
)ˆØ�:‰:˜ÒØ—>‘> #¨T�>Ó2ˆDÚØ—‘˜TÕ"Ø�Z‰Z˜7Ò"Ü#¤C¨£JÓ/ˆBÚØ—‘˜RÕ Ø�Z‰ZÐ8Ò8Ü˜5 %Õ(ð
)ñ Ü˜Ó ˆÙØ�FˆEà�;‰;�uÓ€DÜ�6‰6ÐHÈ"ÈdÓS€Dð Ðà×Ñ˜u¬R¯Z©ZÐ8KÌRÏTÉTÓ-RÐÓS€GÙØ×"Ñ" 4´·
±
¸>Ì2Ï4É4Ó0PÐ"ÓQˆÙØ×!Ñ! #¨DÐ!Ó1ò 		9ˆAØ—5‘5˜ Ó$ˆDØ—:‘: D�:Ó)ÒC¬R¯W©W×-=Ñ-=¸dÓ-CˆDØ�‰˜sÔ#Ü $‘‘Ø—‘ Ô&Ø—z‘z # qÓ)¨!Ñ,¨sÑ2°T¸!¸"°XÑ=‘Ø—_‘_ VÔ,Ø—z‘z # qÓ)¨!Ñ,¨sÑ2°TÑ9�Ø×#Ñ# a¨ v¨R°¨v°QÐ$7Õ8ð		9ñ ØÐ%¨¯	©	Ð2BÓ(CÑCÑCˆà€KrA   c                 ó:  — | j                   D ]Œ  }|j                  dk(  r(|j                  dd¬«      }|sŒ(|j                  |«       Œ:|j                  dk(  r)t	        t        |«      «      }|sŒ`|j                  |«       Œr|j                  dv sŒ�t        ||«       ŒŽ y )Nr   r‹   Trj   r   rŒ   )r6   r3   rx   r8   r�   r9   r‘   )r<   r™   rš   rd   r›   s        r@   r‘   r‘   Ï   s‚   € Ø—‘ò 
)ˆØ�:‰:˜ÒØ—>‘> #¨T�>Ó2ˆDÚØ—‘˜TÕ"Ø�Z‰Z˜7Ò"Ü#¤C¨£JÓ/ˆBÚØ—‘˜RÕ Ø�Z‰ZÐ8Ò8Ü˜5 %Õ(ñ
)rA   c                 óØ  — ddl m}  |t        | «      d«      }|j                  d«      D ]P  }|j	                  dd«      }|sŒ|j                  d«      rŒ*|r t        j                  j                  ||«      n||d<   ŒR |j                  d«      D ]P  }|j	                  d	d«      }|sŒ|j                  d
«      rŒ*|r t        j                  j                  ||«      n||d	<   ŒR t        |«      S )uA   ä¿�ç•™ HTML è¡¨æ ¼ç»“æž„ï¼Œä»…å°†ç›¸å¯¹é“¾æŽ¥/å›¾ç‰‡è½¬ç»�å¯¹ URLr   r   rb   rf   rh   r0   )rm   Ú
javascriptú#ÚimgÚsrc)rm   z//zdata:)	rD   r   r9   rq   rS   ry   ÚurllibÚparseÚurljoin)r   Úbase_urlr   Útblrf   rh   r¤   r¥   s           r@   r�   r�   Ý   sÐ   € å!Ù
œ˜E›
 MÓ
2€CØ�\‰\˜#Óò SˆØ�u‰u�V˜RÓ ˆÚ˜Ÿ™Ð(CÕDÙ@HœŸ™×,Ñ,¨X°tÔ<ÈdˆAˆfŠIðSð �|‰|˜EÓ"ò RˆØ�g‰g�e˜RÓ ˆÚ�s—~‘~Ð&=Õ>Ù@HœŸ™×-Ñ-¨h¸Ô<ÈcˆC�ŠJðRô ˆs‹8€OrA   c                  óD  — dd l } | j                  «       }|j                  dt        dd¬«       |j	                  «       }|j
                  r|j
                  nd}t        dt        › d�«       g }d}t        dd«      D ]›  }t        |«      \  }}|s#|dk(  rt        d	«        y t        d
|› d�«        nh|dk(  r|}|rt        d|› d�«       t        d
|› dt        |«      › d�«       |j                  |«       |r||k\  r n|sŒ†||k\  sŒŒt        d|› d�«        n t        dt        |«      › d�«       |st        d«       y g }	d}
d}t        |«      D ]™  \  }}|d   }|d   }|d   }t        d|dz   › dt        |«      › d|d d › d�d¬«       t        |«      }|st        d«       |dz  }nt        dt        |«      › d �«       |
dz  }
|	j                  t        |||||r|d d! nd"|d#œ«       Œ› t        |	t        ¬$«       t        d%t        › d&t        |«      › d'|
› d(|› �«       y ))Nr   z--pagesu   ä»…çˆ¬å‰�Né¡µï¼ˆ0=å…¨éƒ¨ï¼‰)ÚtypeÚdefaultÚhelpr�   u   ] å¼€å§‹rO   éd   u     âš ï¸� ç¬¬1é¡µä¸ºç©ºï¼Œé€€å‡ºu     ç¬¬u   é¡µ: ç©ºï¼Œç»“æ�Ÿu	     æ€»è®¡ u    é¡µu   é¡µ: u    æ�¡z
  --pages=u    é™�åˆ¶ï¼Œå�œæ­¢u   
åˆ—è¡¨å�ˆè®¡: u     åˆ—è¡¨ä¸ºç©ºï¼Œé€€å‡ºr[   ri   ro   z  [rl   z] é(   z...r‹   )Úendu   âš ï¸� ç©ºæ­£æ–‡u   âœ… u   å­—iô  r0   )Ú	site_nameÚ
source_urlr[   ri   Úpub_dateÚsummaryr‡   )Úbatch_labelz
[u   ] å®Œæˆ�: å…±u   æ�¡, æ­£æ–‡æˆ�åŠŸu   , ç©º)ÚargparseÚArgumentParserÚadd_argumentru   Ú
parse_argsÚpagesrZ   Ú	SITE_NAMErQ   r…   ÚlenÚextendÚ	enumeraterŸ   r8   r   )r·   ÚparserÚargsÚ	max_pagesÚ	all_itemsÚtotal_pages_foundr{   r�   Ú	pagecountÚdb_itemsÚsuccessÚfailedÚiÚitemr[   ri   r„   rœ   s                     r@   r   r   ì   si  € ÛØ×$Ñ$Ó&€FØ
×Ñ˜	¬°QÐ=ZÐÔ[Ø×ÑÓ€DØ"Ÿjšj�—
’
¨a€Iä	ˆAŒiˆ[˜Ð
!Ô"à€IØÐä�a˜“ò ˆÜ*¨4Ó0ÑˆˆyÙØ�qŠyÜÐ7Ô8ÙÜ�E˜$˜Ð0Ð1Ô2ÙØ�1Š9Ø )ÐÙ Ü˜	Ð"3Ð!4°DÐ9Ô:Ü��d�V˜5¤ U£ ¨DÐ1Ô2Ø×Ñ˜ÔÙ Ð):Ò!:ÙÚ˜ Ó*Ü�J˜y˜kÐ)9Ð:Ô;Ùð%ô( 
ÐœS ›^Ð,¨DÐ
1Ô2áÜÐ'Ô(Øà€HØ€GØ€FÜ˜YÓ'ò ‰ˆˆ4Ø�5‰kˆØ�W‘ˆØ˜‘<ˆÜ��A�a‘C�5˜œ#˜i›.Ð)¨¨E°#°2¨J¨<°sÐ;ÀÕEÜ˜CÓ ˆÙÜÐ$Ô%Ø�a‰K‰Fä�Dœ˜T›˜ 3Ð'Ô(Ø�q‰LˆGà�‰Ü"ØØØØ Ù%)�t˜D˜S‘z¨rØñ
õ 	ðô. �X¬9Õ5Ü	ˆC”	ˆ{˜-¬¨I«Ð'7Ð7HÈÈ	ÐQVÐW]ÐV^Ð
_Õ`rA   Ú__main__)é   )r0   )#Ú__doc__Úsysr’   rC   rU   rX   rD   r   r“   ÚdirnameÚabspathÚ__file__Ú_HEREÚinsertÚcrawler_libr   Úurllib.parser¦   r¼   ÚHEADERSrz   rp   ÚSessionrR   ÚheadersÚupdater;   rK   r`   r…   rŸ   r‘   r�   r   Ú__name__© rA   r@   ú<module>rÜ      sØ   ðñ÷ #× "Ó "Ý à
�‰�‰˜Ÿ™Ÿ™¨Ó1Ó2€Ø ‡�‡���5Ô Ý (Û à$€	ð ð  Dð€ð *€Ø3€à
ˆ(×
Ñ
Ó
€Ø ‡�× Ñ �wÔ ò*€òó6ò4ònBòJ)óòAaðH ˆzÒÙ…Fð rA   