Ë
    ¸¬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Z	ddl
Z
dZdZdZdZddd	œZd
Zd„ Zd„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)u(  
crawl_jskydhb_xxgk.py â€” æ±Ÿè‹�ç§‘æ˜“è¾¾çŽ¯ä¿�ç§‘æŠ€è‚¡ä»½æœ‰é™�å…¬å�¸ã€Œä¿¡æ�¯å…¬å¼€ã€�æ �ç›®
http://www.jskydhb.com/index.php/List/index/cid/237.html
PHP ThinkPHP é£Žæ ¼:
- åˆ—è¡¨: div.childcc > p > a[href=/Show/index/cid/237/id/{N}.html] + div.time(å�‘å¸ƒæ—¥æœŸï¼š[2026/06/15])
- åˆ†é¡µ: /List/index/cid/237/p/{N}.html (5æ�¡/é¡µ, å…±38é¡µ=189æ�¡)
- è¯¦æƒ…: /Show/index/cid/237/id/{N}.html
    æ ‡é¢˜ div.news_content > h1, æ—¥æœŸ div.datetime, æ­£æ–‡ div.news_show
- å†…å®¹: åœŸå£¤æ±¡æŸ“çŠ¶å†µè°ƒæŸ¥æŠ¥å‘Š/çŽ¯è¯„å…¬ç¤º, çº¯æ–‡æœ¬æ­£æ–‡(æ— é™„ä»¶)
é    Nzhttp://www.jskydhb.comu   æ±Ÿè‹�ç§‘æ˜“è¾¾çŽ¯ä¿�zcrawl_jskydhb_xxgk.pyu   æ±Ÿè‹�zkMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36zzh-CN,zh;q=0.9)z
User-AgentzAccept-Languageé   c                 óÈ   — | sy| j                  «       } t        j                  dd| t        j                  ¬«      } | j                  «       } t        j                  dd| «      } | S )u=   æ ‡é¢˜æ¸…æ´—: strip &middot;&nbsp;&#32; å®žä½“å‰�ç¼€ä¸Žç©ºç™½Ú z&middot;|&nbsp;|&#160;|&#32;©Úflagsz\s+ú )ÚstripÚreÚsubÚI)Úts    ú'/root/gov_crawler/crawl_jskydhb_xxgk.pyÚclean_titler   "   sN   € áØØ	�‰‹	€AÜ
�‰Ð.°°A¼R¿T¹TÔB€AØ	�‰‹	€AÜ
�‰ˆv�s˜AÓ€AØ€Hó    c           	      ó  ‡— | }g Šˆfd„}t        j                  d||t         j                  t         j                  z  ¬«      }t        j                  dd|t         j                  t         j                  z  ¬«      }t        j                  dd|t         j                  ¬«      }t        j                  dd	|t         j                  ¬«      }t        j                  d
d|«      }t	        j
                  |«      }t        ‰d«      D ]&  \  }\  }}}|j                  d|› d�d|› d|› d�«      }Œ( t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }|j                  «       ‰fS )uP   HTML -> æ–‡æœ¬, ä¿�ç•™ a é“¾æŽ¥(å†…åµŒURL)ä¸Žè¡¨æ ¼, åŽ» script/style, 

 åˆ†æ®µc                 óž  •— | j                  d«      | j                  d«      }}t        j                  dd|«      }t        j                  |«      j                  «       }|r"|j                  d«      s|j                  d«      r|xs dS t        j                  j                  t        |«      }‰j                  |||f«       dt        ‰«      › d�S )	Né   é   ú<[^>]+>r   ú#Ú
javascriptÚ__LINK__Ú__)Úgroupr
   r   Úhtml_libÚunescaper	   Ú
startswithÚurllibÚparseÚurljoinÚBASEÚappendÚlen)ÚmÚhrefÚtxtÚabs_urlÚlinkss       €r   Ú
_link_replz html_to_text.<locals>._link_repl2   s¦   ø€ Ø—G‘G˜A“J §¡¨£
ˆcˆÜ�f‰f�Z  SÓ)ˆÜ×Ñ Ó$×*Ñ*Ó,ˆÙ�d—o‘o cÔ*¨d¯o©o¸lÔ.KØ’9˜"ÐÜ—,‘,×&Ñ&¤t¨TÓ2ˆØ�‰�d˜G SÐ)Ô*Øœ#˜e›*˜ RÐ(Ð(r   z&<a\s[^>]*href="([^"]+)"[^>]*>(.*?)</a>r   z<(script|style)[^>]*>.*?</\1>r   z</(p|div|li|tr|h[1-6]|br)>ú

z<(p|div|li|tr|h[1-6]|br)[^>]*>ú
r   r   r   r   z	<a href="z" target="_blank">z</a>z\rz\n{3,}z[ \t\u00a0]+r   )	r
   r   ÚSr   r   r   Ú	enumerateÚreplacer	   )Úhtml_segÚsegr)   Úir%   r'   r&   r(   s          @r   Úhtml_to_textr2   -   sH  ø€ à
€CØ€Eô)ô �&‰&Ð:¸JÈÔSU×SWÑSWÔZ\×Z^ÑZ^ÑS^Ô
_€Cä
�&‰&Ð1°2°sÄ"Ç$Á$ÌÏÉÁ+Ô
N€Cä
�&‰&Ð.°¸Ä2Ç4Á4Ô
H€CÜ
�&‰&Ð2°D¸#ÄRÇTÁTÔ
J€CÜ
�&‰&�˜R Ó
%€CÜ
×
Ñ
˜CÓ
 €Cä#,¨U°AÓ#6ò ^ÑˆÑˆD�'˜3Ø�k‰k˜H Q C rÐ*¨i¸°yÐ@RÐSVÐRWÐW[Ð,\Ó]‰ð^ä
�&‰&�˜˜CÓ
 €CÜ
�&‰&�˜F CÓ
(€CÜ
�&‰&� # sÓ
+€CØ�9‰9‹;˜ÐÐr   c                 ó(  — t        j                  d| t         j                  «      }g }|D ]e  \  }}}}}t        j                  j                  t        |«      }t        |«      }	d|t        |«      t        |«      fz  }
|j                  |	||
f«       Œg |S )u)   åˆ—è¡¨é¡µ -> [(title, art_url, pub_date)]už   <p><a href="(/index\.php/Show/index/cid/237/id/\d+\.html)"[^>]*>(.*?)</a></p>\s*<div class="time">å�‘å¸ƒæ—¥æœŸ[ï¼š:]\s*\[?(\d{4})/(\d{1,2})/(\d{1,2})\]?</div>ú%s-%02d-%02d)
r
   Úfindallr,   r   r   r    r!   r   Úintr"   )Úhtml_srcÚitemsÚoutr%   r   ÚyÚmoÚdÚart_urlÚtitleÚpubs              r   Ú
parse_listr@   M   s’   € ä�J‰Jð 	jØ”"—$‘$ó€Eð €CØ"ò *Ñˆˆa��B˜Ü—,‘,×&Ñ&¤t¨TÓ2ˆÜ˜A“ˆØ ¤3 r£7¬C°«FÐ3Ñ3ˆØ�
‰
�E˜7 CÐ(Õ)ð	*ð
 €Jr   c                 ó   — t        j                  d| t         j                  «      }|rt        |j	                  d«      «      nd}|sSt        j                  d| t         j                  «      }|r,t        |j	                  d«      j                  d«      d   «      }t        j                  d| «      }d}|rGd|j	                  d«      t        |j	                  d	«      «      t        |j	                  d
«      «      fz  }t        j                  d| t         j                  «      }d}|r|j	                  d«      j                  «       }|xs d|xs d|g fS )u4   è¯¦æƒ…é¡µ -> (title, publish_date, body_html, links)z+<div class="news_content">\s*<h1>(.*?)</h1>r   r   z<title>(.*?)</title>ú-r   u0   å�‘å¸ƒæ—¥æœŸ[ï¼š:]\s*(\d{4})/(\d{1,2})/(\d{1,2})r4   r   é   z"<div class="news_show">(.*?)</div>N)r
   Úsearchr,   r   r   Úsplitr6   r	   )r7   r=   r$   r>   ÚpublishÚ	body_htmls         r   Úparse_detailrH   [   s  € ô 	�	‰	Ð@À(ÌBÏDÉDÓQ€AÙ'(ŒK˜Ÿ™ ›
Ô#¨b€EÙÜ�I‰IÐ-¨x¼¿¹Ó>ˆÙÜ §¡¨£
× 0Ñ 0°Ó 5°aÑ 8Ó9ˆEä
�	‰	ÐEÀxÓP€AØ€GÙØ  A§G¡G¨A£J´°A·G±G¸A³J³ÄÀQÇWÁWÈQÃZÃÐ#QÑQˆä
�	‰	Ð7¸Ä2Ç4Á4ÓH€AØ€IÙØ—G‘G˜A“J×$Ñ$Ó&ˆ	ØŠ=�D˜'š/ T¨9°bÐ8Ð8r   c                  óô  — t        j                  «       } | j                  dt        dd¬«       | j                  ddd¬«       | j                  d	t        ¬
«       | j                  «       }|j                  }|j                  }|j                  d«      st        j                  j                  |«      }t        j                  |«      }|j                  «       }d}d}d}t        j                   «       }	t#        d|j$                  dz   «      D �]è  }
|
dk(  r
t&        › d�}nt&        › d|
› d�}	 |	j)                  |t*        t,        ¬«      }d|_        t5        |j6                  «      }t3        d|
› dt9        |«      › d|› �«       |sŒx|D �]V  \  }}}	 |j;                  d||f«       |j=                  «       d   dkD  r|dz  }Œ9|	j)                  |t*        t,        ¬«      }d|_        t?        |j6                  |«      \  }}}}|jA                  «       st3        d|d d › �«       |dz  }Œž|r|}|r|}tC        |«      \  }}|rdjE                  d„ |D «       «      nd}|r|d d nd}|j;                  dtF        ||||d|ddd|dd|tH        d |v rdnd|f«       |j;                  d!|jJ                  |tF        |f«       |jM                  «        |dz  }t3        d"|› d#|d d$ › �«       �ŒY tO        jP                  d&«       �Œë |jS                  «        t3        d'|› d(|› d)|› �«       y # t0        $ r$}t3        d|
› d|› d|› �«       |dz  }Y d }~�Œ9d }~ww xY w# t0        $ r$}|dz  }t3        d%|d d › d|› �«       Y d }~�Œïd }~ww xY w)*Nz--pagesr   u   æŠ“å�–é¡µæ•°)ÚtypeÚdefaultÚhelpz--dbz/mnt/data/search.dbu   SQLite æ•°æ�®åº“è·¯å¾„)rK   rL   z--script-name)rK   z/mnt/r   z"/index.php/List/index/cid/237.htmlz /index.php/List/index/cid/237/p/z.html)ÚheadersÚtimeoutzutf-8ú[u   ] è¯·æ±‚å¤±è´¥ z: u	   ] åˆ—è¡¨ u    æ�¡ z?SELECT COUNT(*) FROM gov_raw WHERE page_url=? AND script_name=?u     è·³è¿‡ç©ºæ­£æ–‡: r   r*   c              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   N© )Ú.0Úas     r   ú	<genexpr>zmain.<locals>.<genexpr>§   s   è ø€ Ò%>¨q a¨¥dÑ%>ùs   ‚r   iô  zíINSERT INTO gov_raw (site_name, source_url, page_url, title, publish_date, date_rank, summary, status, category, visits, content, tags, industry, attachments, group_name, has_table, script_name) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)Úotherz<tablezJINSERT INTO gov_search (rowid, title, site_name, summary) VALUES (?,?,?,?)z  + r   é(   z  ERR g333333Ó?u   å®Œæˆ�: æ–°å¢ž u
    / é‡�å¤� u
    / é”™è¯¯ )*ÚargparseÚArgumentParserÚadd_argumentr6   ÚSCRIPT_NAMEÚ
parse_argsÚdbÚscript_namer   ÚosÚpathÚ
expanduserÚsqlite3ÚconnectÚcursorÚrequestsÚSessionÚrangeÚpagesr!   ÚgetÚHEADERSÚTIMEOUTÚencodingÚ	ExceptionÚprintr@   Útextr#   ÚexecuteÚfetchonerH   r	   r2   ÚjoinÚ	SITE_NAMEÚ
GROUP_NAMEÚ	lastrowidÚcommitÚtimeÚsleepÚclose)ÚapÚargsÚdb_pathr]   ÚconnÚcurÚ	new_countÚ	dup_countÚ	err_countÚsessionÚpageÚurlÚrÚer8   r>   r=   Úpub_dateÚdrÚd_titleÚd_dateÚcontent_htmlr(   ÚcontentÚ	links_outÚatt_txtÚsummarys                              r   Úmainr�   q   s—  € Ü	×	 Ñ	 Ó	"€BØ‡O�O�I¤C°¸€OÔHØ‡O�O�FÐ$9Ð@X€OÔYØ‡O�O�O¬[€OÔ9Ø�=‰=‹?€Dà�g‰g€GØ×"Ñ"€KØ×Ñ˜gÔ&Ü—'‘'×$Ñ$ WÓ-ˆä�?‰?˜7Ó#€DØ
�+‰+‹-€CØ€IØ€IØ€Iä×ÑÓ €Gä�a˜Ÿ™ a™Ó(ó 4ˆØ�1Š9Ü�FÐ<Ð=‰Cä�FÐ:¸4¸&ÀÐFˆCð	Ø—‘˜C¬¼'�ÓBˆAØ ˆAŒJô
 ˜1Ÿ6™6Ó"ˆÜ��$��y¤ U£ ¨E°#°Ð7Ô8ÙØØ(-ó #	2Ñ$ˆE�7˜Hð"2Ø—‘Ð]Ð`gÐitÐ_uÔvØ—<‘<“> !Ñ$ qÒ(Ø ‘N�IØØ—[‘[ ´'Ä7�[ÓK�Ø%�”Ü7CÀBÇGÁGÈWÓ7UÑ4�˜ ¨uØ#×)Ñ)Ô+ÜÐ/°°c°r°
¨|Ð<Ô=Ø ‘N�IØÙØ#�EÙØ%�HÜ%1°,Ó%?Ñ"�˜ÙBK˜&Ÿ+™+Ñ%>°IÔ%>Ô>ÐQS�Ù+2˜' $ 3™-¸�Ø—‘ðAä ¨°%¸À1ÀgÈrÐSUÐWXÐZaÐceØ˜g¤z¸ÀGÑ8K±1ÐQRÐT_ðaôð —‘Ø`Ø—]‘] E¬9°gÐ>ôð —‘”Ø˜Q‘�	Ü˜˜X˜J a¨¨c¨r¨
 |Ð4Ö5ðA#	2ôH 	�
‰
�3Žði4ðl 	‡J�J„LÜ	ˆO˜I˜; j°°¸:ÀiÀ[Ð
QÕRøô_ ò 	Ü�A�d�V˜?¨3¨%¨r°!°Ð5Ô6Ø˜‰NˆIÝûð	ûôR ò 2Ø˜Q‘�	Ü˜˜u S b˜z˜l¨"¨Q¨CÐ0×1Ò1ûð2ús>   Ä)#LÆ/M
Æ<A$M
È!B9M
Ì	MÌ#MÍMÍ
	M7ÍM2Í2M7Ú__main__)Ú__doc__rW   Úhtmlr   r^   r
   ra   rv   Úurllib.parser   rd   r!   rr   rZ   rs   ri   rj   r   r2   r@   rH   r�   Ú__name__rQ   r   r   ú<module>r•      s}   ðñ	ó Û Û 	Û 	Û Û Û ã à€Ø#€	Ø%€Ø€
àØ'ñ€ð €òòò@ò9ò,KSð\ ˆzÒÙ…Fð r   