Ë
    ;ä±jö#  ã                   óp  — d Z ddlZddlmZ ddlZddlZddlZddlZddlZdZ	e	dz   Z
dddd	œZd
ZdZej                  j                  dd«      ZdZdZ ej&                  «       Zej*                  j-                  e«       h d£Zd„ Zd„ Zd„ Zd„ Zd„ Zedk(  r! ede› de› �«        e«       Z ede› �«       yy)u;   crawl_szwz.py - è‹�å·žå¸‚å�´ä¸­åŒºäººæ°‘æ”¿åºœ å…¬å‘Šå…¬ç¤ºé    N)ÚBeautifulSoupzhttp://www.szwz.gov.cnz/szwz/gggs/list{page}.shtmlzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36zUtext/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8zzh-CN,zh;q=0.9,en;q=0.8)z
User-AgentÚAcceptzAccept-Languageé   g      à?ÚDB_PATHz/root/search.dbu   è‹�å·žå¸‚å�´ä¸­åŒºäººæ°‘æ”¿åºœu   å…¬å‘Šå…¬ç¤º>)   Ú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Úchr2   ÚoutÚwalks     €€€ú/root/gov_crawler/crawl_szwz.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]*r6   z\n{3,}ú

)ÚreÚbs4r2   ÚjoinÚsubÚstrip)ÚelÚ_reÚtr2   r?   r@   s      @@@rA   Ú	body_textrL   )   sb   ú€ à	€zØÛÝ#Ø
€Cöñ 	ˆ„HØ
�‰�‹€AØ�‰Ð-¨t°QÓ7€AØ�‰�	˜6 1Ó%€AØ�7‰7‹9ÐrB   c                 ó¼   — 	 t         j                  | t        ¬«      }d|_        t	        |j
                  d«      S # t        $ r}t        d|› �«       Y d }~y d }~ww xY w)N©Útimeoutzutf-8úhtml.parseru     [WARN] è¯·æ±‚å¤±è´¥: )ÚsessionÚgetÚTIMEOUTÚencodingr   ÚtextÚ	ExceptionÚprint)ÚurlÚrÚes      rA   Úget_soupr[   D   sT   € ðÜ�K‰K˜¤WˆKÓ-ˆØˆŒ
Ü˜QŸV™V ]Ó3Ð3øÜò ÜÐ'¨ sÐ+Ô,Üûðús   ‚7: º	AÁAÁAc                 ó–   — |j                  d«      r|S |j                  d«      r	t        |z   S | j                  dd«      d   }|dz   |z   S )zFResolve a potentially relative URL to absolute, using detail page URL.Úhttpú/é   r   )Ú
startswithÚBASE_URLÚrsplit)Úbase_urlÚdetail_soupÚsrcÚbase_dirs       rA   Úresolve_urlrg   N   sO   € à
‡~�~�fÔØˆ
Ø
‡~�~�cÔÜ˜#‰~Ðð
 �‰˜s AÓ& qÑ)€HØ�c‰>˜CÑÐrB   c                 óˆ  — t        | «      }|syd}|j                  dddi¬«      }|r$|j                  d«      r|d   j                  «       }d}|j                  dddi¬«      }|r'|j                  d«      r|d   j                  «       d d	 }|j                  d
d¬«      }|s||dfS |j                  d«      }|s|}|j	                  ddg«      D ]  }|j                  «        Œ |j	                  d«      D ]`  }	|	j                  dd«      }
|	j                  dd«      }|
sŒ*t        | ||
«      }
d|› d|
› d�}t        d|› d�d«      }|	j                  |«       Œb |j	                  d«      D ]”  }|j                  dd«      }|r|j                  d«      r|j                  «        Œ9t        | ||«      }|j                  d¬«      }|r+d|› d|› d�}t        d|› d�d«      }|j                  |«       Œ…|j                  «        Œ– |j	                  d«      D ]  }|j                  «        Œ |j	                  d d!g«      D ]  }|j                  «        Œ g }|j	                  d"d#g«      D ]«  }|j                  d#k(  r|j                  t        |«      «       Œ-|j                  d"k(  sŒ=|j                  d#«      rŒOt!        |«      }|r|d$v rŒa|j#                  d%d&«      j                  «       }t%        j&                  d'd|«      }|sŒ›|j                  |«       Œ­ d(j)                  |«      }|j                  d)d*¬«      }|r‰g }|j	                  dd¬+«      D ]D  }|d   }|j                  d¬«      }|sŒ|sŒ t        | ||«      }|j                  d|› d|› d�«       ŒF |r+|r|d,d-j)                  |«      z   z  }nd-j)                  |«      }|||fS ).N)r1   r1   r1   r1   Úmetar4   ÚArticleTitle)ÚattrsÚcontentÚPubDateé
   r   ÚinfoContent_info)Úclass_ÚUCAPCONTENTÚscriptÚstyleÚimgre   Úaltz![z](ú)z<span>z</span>rP   ÚaÚhrefú#T©rH   ú[zo:pÚspanÚfontr   r   )õ   Â r1   r~   ú z\n+rC   r	   zarticle-extended)rx   u   

**é™„ä»¶ï¼š**
r6   )r[   ÚfindrR   rH   Úfind_allÚ	decomposerg   r   Úreplace_withr`   ÚunwrapÚget_textr4   r9   r:   Úfind_parentrL   ÚreplacerD   rG   rF   )rX   ÚsoupÚtitleÚ
meta_titleÚpub_dateÚ	meta_dateÚinfo_divÚcontent_divÚtagrt   re   ru   Úimg_tagÚnew_tagrw   rx   Úa_textÚmarkdown_linkÚ
paragraphsrU   rl   Úext_dlÚ
file_linkss                          rA   Úextract_detailr—   \   sð  € Ü�C‹=€DÙØð €EØ—‘˜6¨&°.Ð)A�ÓB€JÙ�j—n‘n YÔ/Ø˜9Ñ%×+Ñ+Ó-ˆð €HØ—	‘	˜&¨°Ð(;�	Ó<€IÙ�Y—]‘] 9Ô-Ø˜YÑ'×-Ñ-Ó/°°Ð4ˆð �y‰y˜Ð'9ˆyÓ:€HÙØ�h Ð"Ð"à—-‘- Ó.€KÙØˆð ×#Ñ# X¨wÐ$7Ó8ò ˆØ�‰�ðð ×#Ñ# EÓ*ò &ˆØ�g‰g�e˜RÓ ˆØ�g‰g�e˜RÓ ˆÚÜ˜c 4¨Ó-ˆCØ˜3˜%˜r #  aÐ(ˆGÜ# f¨W¨I°WÐ$=¸}ÓMˆGØ×Ñ˜WÕ%ð&ð ×!Ñ! #Ó&ò ˆØ�u‰u�V˜RÓ ˆÙ�t—‘ sÔ+Ø�H‰HŒJØÜ˜3  dÓ+ˆØ—‘ $�Ó'ˆÙØ ˜x r¨$¨¨qÐ1ˆMÜ# f¨]¨O¸7Ð$CÀ]ÓSˆGØ�N‰N˜7Õ#à�H‰H�Jðð ×#Ñ# EÓ*ò ˆØ�‰�ðð ×#Ñ# V¨VÐ$4Ó5ò ˆØ�
‰
�ðð €JØ×#Ñ# S¨' NÓ3ò (ˆØ�8‰8�wÒØ×Ñœc #›hÕ'Ø�X‰X˜‹_Ø�‰˜wÔ'ØÜ˜S“>ˆDÙ˜4 <Ñ/Øà—<‘< ¨Ó,×2Ñ2Ó4ˆDÜ—6‘6˜& " dÓ+ˆDÚØ×!Ñ! $Õ'ð(ð �k‰k˜*Ó%€Gð �Y‰Y�tÐ$6ˆYÓ7€FÙØˆ
Ø—‘ ¨4�Ó0ò 	9ˆAØ�V‘9ˆDØ—Z‘Z d�ZÓ+ˆFÚšÜ" 3¨¨dÓ3�Ø×!Ñ! A f X¨R°¨v°QÐ"7Õ8ð	9ñ ÙØÐ0°4·9±9¸ZÓ3HÑHÑH‘àŸ)™) JÓ/�à�(˜GÐ#Ð#rB   c                  ó  — d} d}t        j                  t        d¬«      }|j                  «       }	 | dk(  rt        j                  d¬«      }nt        j                  d| › �¬«      }t        d	| › d
�dd¬«       t        |«      }|st        d«       �n§|j                  d«      }|st        d«       �n‡t        t        |«      › d�«       |D �]  }|j                  d«      }|sŒ|j                  dd«      j                  «       }	|	sŒ;t        |||	«      }	|j                  d¬«      }
|j                  d|	f«       |j!                  «       rŒ~t#        j$                  t&        «       t)        |	«      \  }}}|s|
}|rt        |«      dk  rd|	› d|› d�}t        d|
d d › d�«       	 |j                  d|	|t*        |||r|j-                  dd«      nd|d d f«       |dz  }�Œ | d!z  dk(  r|j1                  «        t        d"|› d#�«       t        |«      dk(  rn&| d$k\  rn | dz  } t#        j$                  t&        «       �Œ|j1                  «        |j3                  «        t        d%|› d&�«       |S # t.        $ r}t        d |› �«       Y d }~�Œ¼d }~ww xY w)'Nr_   r   é<   rN   Tr1   )ÚpageÚ_u     ç¬¬u   é¡µ...r   )ÚendÚflushÚFAILzli.ewb-info-itemu   ç©ºåˆ—è¡¨ï¼Œç»“æ�Ÿu   æ�¡rw   rx   rz   z&SELECT 1 FROM gov_raw WHERE page_url=?r   z<p><a href="z">z</a></p>u       âš  é(   u$   ... - æ­£æ–‡ä¸ºç©ºï¼Œå›žé€€ä¸ºé“¾æŽ¥z›INSERT OR REPLACE INTO gov_raw (page_url, title, site_name, publish_date, content, date_rank, summary, script_name) VALUES (?,?,?,?,?,?,?, 'crawl_szwz.py')ú-Ú0éÈ   z    ERROR: rn   u     [å·²æ��äº¤ u    æ�¡]éu   u   
å®Œæˆ�: æ–°å¢ž u    æ�¡)Úsqlite3Úconnectr   ÚcursorÚLIST_URLÚformatrW   r[   ÚselectÚlenr€   rR   rH   rg   r…   ÚexecuteÚfetchoneÚtimeÚsleepÚDELAYr—   Ú	SITE_NAMEr‡   rV   ÚcommitÚclose)rš   Útotal_addedÚconnÚcrX   rˆ   ÚitemsÚitemÚa_tagÚlinkÚ
list_titleÚ	ext_titler‹   rl   rZ   s                  rA   Úcrawlr¼   À   s“  € Ø€DØ€Kä�?‰?œ7¨BÔ/€DØ�‰‹€Aà
Ø�1Š9Ü—/‘/ r�/Ó*‰Cä—/‘/¨¨4¨& z�/Ó2ˆCÜ��d�V˜6Ð"¨°4Õ8Ü˜‹}ˆÙÜ�&ŒMÙà—‘Ð.Ó/ˆÙÜÐ&Ô'Ùä”�U“�˜CÐ Ô!Øó "	)ˆDØ—I‘I˜c“NˆEÙØØ—9‘9˜V RÓ(×.Ñ.Ó0ˆDÙØÜ˜s D¨$Ó/ˆDàŸ™¨d˜Ó3ˆJð �I‰IÐ>ÀÀÔHØ�z‰zŒ|Øô �J‰J”uÔÜ+9¸$Ó+?Ñ(ˆI�x ÙØ&�	Ùœc '›l¨RÒ/Ø(¨¨¨b°°¸8ÐD�Ü˜ ¨C¨R Ð 1Ð1UÐVÔWð)Ø—	‘	ð vØ˜9¤i°¸7Ù2:�X×%Ñ% c¨2Ô.ÀÀYÈtÐPSÀ_ðVôð
 ˜qÑ ’ðA"	)ðJ �"‰9˜Š>Ø�K‰KŒMÜ�M + ¨eÐ4Ô5ô ˆu‹:˜Š?Øà�3Š;ØØ�‰	ˆÜ�
‰
”5ÔñC ðF 	‡K�K„MØ‡J�J„LÜ	Ð˜k˜]¨$Ð
/Ô0ØÐøô) ò )Ü˜ A 3Ð'×(Ò(ûð)ús   Æ!9I*É*	JÉ3JÊJÚ__main__u   ç«™ç‚¹: z - u   æ€»è®¡æ–°å¢ž: ) Ú__doc__ÚrequestsrE   r   r¤   ÚosrD   Úsysr­   ra   r§   ÚHEADERSrS   r¯   ÚenvironrR   r   r°   ÚCOLUMN_NAMEÚSessionrQ   ÚheadersÚupdater<   rL   r[   rg   r—   r¼   Ú__name__rW   Úadded© rB   rA   ú<module>rË      së   ðá AÛ Ý Û Û 	Û 	Û 
Û à#€ØÐ3Ñ3€ð DØeØ0ñ€ð
 €Ø€à
�*‰*�.‰.˜Ð$5Ó
6€Ø,€	Ø€à
ˆ(×
Ñ
Ó
€Ø ‡�× Ñ �wÔ ò*€òò6ò òa$òHMð` ˆzÒÙ	ˆH�Y�K˜s ; -Ð
0Ô1Ù‹G€EÙ	ˆN˜5˜'Ð
"Õ#ð rB   