Ë
    ¸¬uj8  ã                   ó^  — 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 ddlZdZ	dZ
dZ ej                  dd«      Zd	Zd
e
dz   dddœZd„ Zdd„Zd„ Zd„ Zdd„Zedk(  rR eej.                  «      dkD  r2ej.                  d   j1                  «       r eej.                  d   «      ndZ ee«       yy)u?   æ°¸ä¸°åŽ¿äººæ°‘æ”¿åºœ-å…¬å…±ç›‘ç®¡ çˆ¬è™« (CloudWAF + AJAX API)é    N)ÚBeautifulSoupu   æ°¸ä¸°åŽ¿-å…¬å…±ç›‘ç®¡zhttp://www.jxyongfeng.gov.cnz/xxgk-list-ggjg1.htmlÚ	SEARCH_DBz/root/search.dbé   zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36ú/z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zzh-CN,zh;q=0.9,en;q=0.8)z
User-AgentÚRefererÚAcceptzAccept-Languagec                  ó¨   — t        j                  «       } | j                  j                  t        «       | j                  t        t        z   d¬«       | S )Né   ©Útimeout)ÚrequestsÚSessionÚheadersÚupdateÚHEADERSÚgetÚBASEÚ	LIST_PAGE)Úss    ú(/root/gov_crawler/crawl_yongfeng_ggjg.pyÚget_sessionr      s<   € Ü×ÑÓ€AØ‡I�I×Ñ”WÔà‡E�EŒ$”Ñ
 B€EÔ'Ø€Hó    é   c           	      óì   — dddddddg d¢d	g	d
dœ}	 | j                  t        › d|› d�|d¬«      }t        j                  |j                  «      S # t
        $ r}t        d|› d|› �«       Y d}~yd}~ww xY w)u   é€šè¿‡AJAX APIèŽ·å�–åˆ—è¡¨.Ú5_xxgkÚ165919Ú5ÚxxgkzY-m-dÚ50Ú20)zis_top DESCzdisplayorder DESCzinputtime DESCÚ Ú1)zajax_type[]Úis_dsz/api-ajax_list-z.htmlé   )Údatar   u     âš ï¸� APIå¤±è´¥ page=ú: N)Úpostr   ÚjsonÚloadsÚtextÚ	ExceptionÚprint)ÚsessionÚpager%   ÚrÚes        r   Ú
fetch_listr1      sŒ   € ð ! (¨C°¸À$ÈÚOÐQSðUàñ€Dð
Ø�L‰LœD˜6 °°°eÐ<À4ÐQSˆLÓTˆÜ�z‰z˜!Ÿ&™&Ó!Ð!øÜò ÜÐ(¨¨¨b°°Ð4Ô5Üûðús   ’<A Á	A3ÁA.Á.A3c                 óž   — 	 | j                  |d¬«      }d|_        |j                  S # t        $ r}t	        d|› d|› �«       Y d }~y d }~ww xY w)Nr$   r   zutf-8u     âš ï¸� è¯·æ±‚å¤±è´¥ r&   )r   Úencodingr*   r+   r,   )r-   Úurlr/   r0   s       r   Ú
fetch_pager5   -   sR   € ðØ�K‰K˜ RˆKÓ(ˆØˆŒ
Ø�v‰vˆøÜò ÜÐ& s e¨2¨a¨SÐ1Ô2Üûðús   ‚%( ¨	A±AÁAc                 ór  — t        | d«      }d}|j                  d«      xs |j                  d«      }|r|j                  d¬«      }d}dD ]C  }|j                  d|¬	«      }|sŒ |g d
¢«      D ]  }|j                  «        Œ t	        |«      } n |std\  }}	|j                  d«      D ]/  }|j                  d«      }
t        |
«      |	kD  sŒ#|t        |
«      }	}Œ1 |r* |g d
¢«      D ]  }|j                  «        Œ t	        |«      }t        j                  dd|«      }t        j                  dd|«      }||fS )NÚlxmlr!   Úh1Úh2T)Ústrip)zarticle-contentÚcontentÚ
TRS_EditorÚzoomÚxxgk_contentÚdiv)Úclass_)ÚscriptÚstyleÚiframe)Nr   Úpz\s*style="[^"]*"z\s*class="[^"]*")	r   ÚfindÚget_textÚ	decomposeÚstrÚfind_allÚlenÚreÚsub)ÚhtmlÚsoupÚtitler8   r;   Úclsr?   ÚtagÚbestÚ
best_countÚpss              r   Úparse_detailrU   7   s?  € Ü˜˜vÓ&€Dà€EØ	�‰�4‹Ò	+˜DŸI™I d›O€BÙ	Ø—‘ $�Ó'ˆð €GØSò ˆØ�i‰i˜ cˆiÓ*ˆÚÙÒ8Ó9ò  �Ø—‘•ð ä˜#“hˆGÙðñ Ø"ÑˆˆjØ—=‘= Ó'ò 	0ˆCØ—‘˜cÓ"ˆBÜ�2‹w˜Ó#Ø#&¬¨B«�j‘ð	0ñ ÙÒ9Ó:ò  �Ø—‘•ð ä˜$“iˆGä�f‰fÐ(¨"¨gÓ6€GÜ�f‰fÐ(¨"¨gÓ6€GØ�'ˆ>Ðr   c                 óD  — | €t         } t        j                  t        «      }t	        d„ |j                  dt        f«      j                  «       D «       «      }|j                  «        t        «       }g }t        d| dz   «      D �]  }t        d|› d�d¬«       t        ||«      }|r|j                  d«      st        d	«        nÝ|d   }g }|D ]a  }	|	d
   j                  d«      st        dz   |	d
   z   n|	d
   }
|
|vsŒ0|j!                  |	d   |
|	d   d d |	j                  dd«      d d dœ«       Œc t        dt#        |«      › dt#        |«      › d|j                  dd«      › d�«       |st#        |«      dk  r n'|j%                  |«       t#        |d   «      dk  s�Œ n |st        d«       y t        dt#        |«      › d�«       g }t'        |«      D ]Ç  \  }}	t)        ||	d
   «      }|s9|j!                  t        |	d
   d d |	d
   |	d   d d |	d   |	d   |	d   d ddd!œ
«       ŒPt+        |«      \  }}|s|	d   }|j!                  t        |	d
   d d |	d
   |d d |	d   |	d   |xs |	d   d ddd!œ
«       |dz   dz  dk(  sŒªt        d"|dz   › dt#        |«      › d#�«       ŒÉ t        j                  t        «      }|j                  d$«       |j                  d%«       d&\  }}|D ]Z  }		 |j                  d'|	d(   d d) |	d*   |	d+   |	d   |	d,   |	d   |	d-   |	d.   |	d/   |	d0   f
«       |j,                  dkD  r|dz  }n|dz  }Œ\ |j/                  «        |j                  d1t        f«       |j/                  «        |j                  «        t        d2|› d3|› d4�«       y #  |dz  }Y ŒÀxY w)5Nc              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   N© )Ú.0r/   s     r   ú	<genexpr>zrun.<locals>.<genexpr>]   s   è ø€ ò Øˆˆ!�ñùs   ‚z.SELECT page_url FROM gov_raw WHERE site_name=?r   u     ðŸ“„ ç¬¬ u    é¡µ...ú )Úendr%   u   â�Œr4   Úhttpr   rO   Ú	inputtimeé
   Údescriptionr!   iô  )rO   r4   ÚdateÚsummaryu   âœ… u    æ�¡ (æ–°å¢ž u    / æ€»Útotalr   ú)r
   u     â�­ æ— æ–°æ•°æ�®u     ðŸ”� èŽ·å�– u    æ�¡è¯¦æƒ…...ra   rb   Úactive)
Ú	site_nameÚ
source_urlÚpage_urlrO   Úpublish_daterb   r;   ÚstatusÚcategoryÚtagsz    [ú]zPRAGMA journal_mode=WALzPRAGMA synchronous=NORMAL)r   r   z¤INSERT OR IGNORE INTO gov_raw (site_name, source_url, page_url, title, publish_date, summary, content, status, category, tags) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)rf   éÈ   rg   rh   ri   r;   rj   rk   rl   z·INSERT INTO gov_search(rowid, title, site_name, summary) SELECT r.id, r.title, r.site_name, r.summary FROM gov_raw r WHERE r.id NOT IN (SELECT rowid FROM gov_search) AND r.site_name=?u     ðŸ’¾ å…¥åº“: æ–°å¢žu   , è·³è¿‡u   , FTSå·²å�Œæ­¥)Ú	MAX_PAGESÚsqlite3Úconnectr   ÚsetÚexecuteÚ	SITE_NAMEÚfetchallÚcloser   Úranger,   r1   r   Ú
startswithr   ÚappendrJ   ÚextendÚ	enumerater5   rU   Útotal_changesÚcommit)Ú	max_pagesÚdbÚknownr-   Ú	all_itemsr.   r%   ÚitemsÚ	new_itemsÚitemr4   ÚresultsÚirM   rO   r;   ÚokÚskips                     r   Úrunr‰   X   s*  € ØÐÜˆ	ä	�‰œÓ	#€BÜñ Ø—j‘jØ<¼y¸ló
ç
‰(‹*ôó €Eð
 ‡H�H„Jä‹m€Gà€IÜ�a˜ Q™Ó'ó ˆÜ�˜D˜6 Ð)¨sÕ3Ü˜' 4Ó(ˆÙ˜4Ÿ8™8 FÔ+Ü�%ŒLÙØ�V‘ˆØˆ	Øò 	ˆDØ26°u±+×2HÑ2HÈÔ2P”$˜‘*˜t E™{Ò*ÐVZÐ[`ÑVaˆCØ˜%ÒØ× Ñ Ø! '™]ØØ  Ñ-¨c¨rÐ2Ø#Ÿx™x¨°rÓ:¸4¸CÐ@ñ	"õ ð	ô 	�”S˜“Z�L ¬c°)«nÐ-=¸VÀDÇHÁHÈWÐUVÓDWÐCXÐXYÐZÔ[ÙœS ›Z¨"š_ÙØ×Ñ˜Ô#Üˆt�F‰|Ó˜rÔ!Ùð-ñ0 ÜÐ"Ô#Øä	ˆNœ3˜y›>Ð*¨-Ð
8Ô9Ø€GÜ˜YÓ'ò !3‰ˆˆ4Ü˜' 4¨¡;Ó/ˆÙØ�N‰NÜ&Ø" 5™k¨$¨3Ð/Ø  ™KØ˜g™ t¨Ð,Ø $ V¡Ø 	™?Ø 	™?Ø"ØØñô ð ä% dÓ+‰ˆˆwÙØ˜‘MˆEØ�‰Ü"Ø˜u™+ d sÐ+Ø˜U™Ø˜4˜C�[Ø  ™LØ˜I‘ØÒ1 $ y¡/ØØØñ
ô 	ð �‰E�R‰<˜1ÓÜ�E˜!˜A™#˜˜a¤ I£Ð/¨qÐ1Õ2ðC!3ôF 
�‰œÓ	#€BØ‡J�JÐ(Ô)Ø‡J�JÐ*Ô+Ø�H€BˆØò ˆð	Ø�J‰Jð8ð ˜Ñ% d sÐ+¨T°,Ñ-?ÀÀjÑAQØ˜‘M 4¨Ñ#7¸¸i¹Ø˜‘O T¨(¡^°T¸*Ñ5EÀtÈFÁ|ðôð ×Ñ !Ò# R¨1¡W¡RØ˜!‘)�$øðð ‡I�I„KØ‡J�Jð	Mô 
ˆô	ð ‡I�I„KØ‡H�H„JÜ	Ð! "  X¨d¨V°>Ð
BÕCøð 	�˜‘	’ús   Ë#ANÎNÚ__main__)r   )N)Ú__doc__rK   Úsysrp   r(   r   Úbs4r   Úosrt   r   r   Úgetenvr   ro   r   r   r1   r5   rU   r‰   Ú__name__rJ   ÚargvÚisdigitÚintÚmax_prX   r   r   ú<module>r•      sÂ   ðá Eß × Û Ý Û 	à$€	Ø%€Ø#€	ØˆB�I‰I�kÐ#4Ó5€	Ø€	ð DØ�c‰zØOØ0ñ	€òóòòóBlDð^ ˆzÒÙ # C§H¡H£°Ò 1°c·h±h¸q±k×6IÑ6IÔ6K‰C�—‘˜‘ÔÐQU€EÙˆ…Jð r   