Ë
    ¸¬ujw  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlZ ej                  dd«      ZdZdZ	e	dz   Z
dZdd	iZ e j                  «       Zej                  j!                  e«       d
„ Zdd„Zd„ Zd„ Zedk(  r e«        yy)é    NÚ	SEARCH_DBz/root/search.dbu   é›…å®‰ç»�å¼€åŒºé€šçŸ¥å…¬å‘Šzhttps://jkq.yaan.gov.cnz6/xinwen/list/ed38700d-1b4c-4176-a0f7-e9423aa33291.htmlz
2023-06-01z
User-Agentz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36c                 ó¾   — 	 t        | «      S # t        $ rF t        j                  | j	                  «       «      j                  «       d d }t        |d«      dz  cY S w xY w)Né   é   l            )ÚintÚ
ValueErrorÚhashlibÚmd5ÚencodeÚ	hexdigest)ÚxidÚhs     ú#/root/gov_crawler/crawl_yaan_jkq.pyÚmake_int_idr      sT   € ð$Ü�3‹xˆøÜò $Ü�K‰K˜Ÿ
™
›Ó%×/Ñ/Ó1°#°2Ð6ˆÜ�1�b‹z˜UÑ#Ò#ð$ús   ‚
 �AAÁAc                 óV  — | dk(  rt         n
t         › d| › �}t        j                  |d¬«      }|j                  j	                  dd¬«      }t        j                  d|t
        j                  «      }g }|D ]2  \  }}}|sŒ
t        |«      d	kD  sŒd
|v sŒ|j                  |||dœ«       Œ4 |S )Né   z?page=é   ©Útimeoutúutf-8Úreplace©ÚerrorszS<a[^>]*title="([^"]*)"[^>]*href="(/xinwen/show/[^"]+)"[^>]*>.*?<span>([^<]+)</span>é
   z/xinwen/show/)ÚtitleÚhrefÚdate)
ÚLIST_URLÚsessionÚgetÚcontentÚdecodeÚreÚfindallÚDOTALLÚlenÚappend)	ÚpageÚurlÚrÚhtmlÚitemsÚresultr   r   r   s	            r   Ú
fetch_listr.      s«   € Ø˜a’i�(¬ z°¸°vÐ%>€CÜ�‰�C ˆÓ$€AØ�9‰9×Ñ˜G¨IÐÓ6€DÜ�J‰JÐmÐosÔuw×u~Ñu~Ó€EØ€FØ"ò HÑˆˆt�TÚ”S˜“Z "“_¨¸DÒ)@Ø�M‰M E°4ÀÑFÕGðHð €Mó    c                 ó²  — t         j                  t        › | › �d¬«      }|j                  j	                  dd¬«      }d}t        j                  d|«      }|r|j                  d«      }d}t        j                  d	|t
        j                  «      }|rÄ|j                  d«      }t        j                  d
d|t
        j                  t
        j                  z  ¬«      }t        j                  dd|t
        j                  t
        j                  z  ¬«      }t        j                  dd|«      j                  «       }t        |«      dk\  r|j                  «       }||fS )Nr   r   r   r   r   Ú z1<meta name="PubDate" content="(\d{4}-\d{2}-\d{2})r   z"<div class="xqing-web">(.*?)</div>z<script[^>]*>.*?</script>)Úflagsz<style[^>]*>.*?</style>z<[^>]+>é   )r   r    ÚBASE_URLr!   r"   r#   ÚsearchÚgroupr%   ÚsubÚIÚstripr&   )	r   r*   r+   Úpub_dateÚdmÚcontent_htmlÚmr   Ú	text_onlys	            r   Úfetch_detailr?   "   s  € Ü�‰”x�j  Ð'°ˆÓ4€AØ�9‰9×Ñ˜G¨IÐÓ6€Dà€HÜ	�‰ÐGÈÓ	N€BÙ	Ø—8‘8˜A“;ˆà€LÜ
�	‰	Ð7¸¼r¿y¹yÓI€AÙØ�G‰G�A‹JˆÜ�F‰FÐ/°°Q¼b¿i¹iÌÏÉ¹nÔMˆÜ�F‰FÐ-¨r°1¼B¿I¹IÄbÇdÁd¹NÔKˆÜ—F‘F˜: r¨1Ó-×3Ñ3Ó5ˆ	Üˆy‹>˜RÒØŸ7™7›9ˆLà˜Ð!Ð!r/   c                  óè  — t        dt        › d�«       g } t        dd«      D ]b  }	 t        |«      }|st        d|› d�«        nC| j	                  |«       t        d|› dt        |«      › d	�«       t        j                  d
«       Œd t        dt        | «      › �«       t        j                  t        «      }|j                  «       }d\  }}}}	t        j                  «       }
t        | «      D ]ò  \  }}|d   }|d   }|d   }|r|t        k  r|dz  }Œ&	 t        |«      \  }}|r|}|s|	dz  }	t!        |«      }	 |j#                  d|t        t$        › |› �t$        › |› �||||rt'        |j)                  dd«      «      ndf«       |j*                  dkD  r|dz  }n|dz  }|dz   dz  dk(  sŒ½t        j                  «       |
z
  }t        d|› d|dz   › d|› d|› d|d›d�«       Œô |j-                  «        t        j                  «       |
z
  }t        d|	› �«       t        d «       	 |j                  «       }|j#                  d!t        f«       |j#                  d"t        f«      j/                  «       }|j1                  d#|«       |j-                  «        t        d$t        |«      › d%�«       |j3                  «        t        d'|d›d(|› d)|› d|› �«       y # t        $ r}t        d|› d|› �«       Y d }~ �Œld }~ww xY w# t        $ r}t        d|› d|› �«       Y d }~�Œ.d }~ww xY w# t        $ r!}t        d|› d|› �«       |dz  }Y d }~�Œªd }~ww xY w# t        $ r}t        d&|› �«       Y d }~ŒÃd }~ww xY w)*Nz=== z ===r   éZ   z  Page z: empty, stoppingz  List page z: z	 articlesg333333Ã?z  [ERROR] List page z
Total: )r   r   r   r   r   r   r   z  [ERROR] Detail z|INSERT OR IGNORE INTO gov_raw(id,site_name,source_url,page_url,title,publish_date,content,date_rank) VALUES(?,?,?,?,?,?,?,?)ú-r1   r   z  [DB ERR] é2   z  +ú/z (-z, >3yz) [z.0fzs]z
No content: z
Syncing FTS...zPDELETE FROM gov_search WHERE rowid IN (SELECT id FROM gov_raw WHERE site_name=?)zLSELECT id, title, site_name, summary, content FROM gov_raw WHERE site_name=?z]INSERT OR IGNORE INTO gov_search(rowid, title, site_name, summary, content) VALUES(?,?,?,?,?)z  FTS: z recordsz  FTS error: z
=== Done (zs) === +z, -)ÚprintÚ	SITE_NAMEÚranger.   Úextendr&   ÚtimeÚsleepÚ	ExceptionÚsqlite3ÚconnectÚDB_PATHÚcursorÚ	enumerateÚCUTOFF_DATEr?   r   Úexecuter4   r   r   ÚrowcountÚcommitÚfetchallÚexecutemanyÚclose)Úall_articlesÚpgÚartsÚeÚconnÚcÚinsertedÚskippedÚoldÚ
no_contentÚstartÚiÚartr   r:   r   r<   Údetail_dateÚint_idÚelapsedÚc2Úrowss                         r   Úmainrj   7   sœ  € Ü	ˆD”�˜4Ð
 Ô!à€LÜ�A�r‹lò ˆð
	Ü˜b“>ˆDÙÜ˜ ˜tÐ#4Ð5Ô6ÙØ×Ñ Ô%Ü�L   B¤s¨4£y k°Ð;Ô<Ü�J‰J�tÕðô 
ˆI”c˜,Ó'Ð(Ð
)Ô*ä�?‰?œ7Ó#€DØ�‰‹€AØ)3Ñ&€Hˆg�s˜JÜ�I‰I‹K€Eä˜LÓ)ò $T‰ˆˆ3Ø�G‘ˆØ�v‘;ˆØ�6‰{ˆá˜¤;Ò.Ø�1‰HˆCØð	Ü(4°TÓ(:Ñ%ˆL˜+ñ
 Ø"ˆHÙØ˜!‰OˆJä˜TÓ"ˆð	Ø�I‰Ið  UØœyÜ"˜ D 6Ð*Ü"˜ D 6Ð*Ø˜h¨Ù8@”s˜8×+Ñ+¨C°Ó3Ô4Àað	IôJð �z‰z˜AŠ~˜x¨1™}™xØ˜Q‘,�'ð
 ˆa‰C�2‰:˜‹?Ü—i‘i“k EÑ)ˆGÜ�C˜�z  A a¡C '¨¨W¨I°U¸3¸%¸sÀ7È3À-ÈrÐRÕSðI$TðL 	‡K�K„MÜ�i‰i‹k˜EÑ!€GÜ	ˆN˜:˜,Ð
'Ô(Ü	ÐÔð#Ø�[‰[‹]ˆØ
�
‰
ÐeÔhqÐgsÔtØ�z‰zÐhÔktÐjvÓw÷  Añ  Aó  CˆØ
�‰ÐvÐx|Ô}Ø�‰ŒÜ�œ˜D›	�{ (Ð+Ô,ð 	‡J�J„LÜ	ˆL˜ ˜ X¨h¨Z°s¸7¸)À5ÈÈÐ
NÕOøô ò 	ÜÐ(¨¨¨B¨q¨cÐ2Ô3Þûð	ûô, ò 	ÜÐ% d V¨2¨a¨SÐ1Ô2Ýûð	ûô& ò 	Ü�K ˜v R¨ sÐ+Ô,Ø�q‰LŽGûð	ûô& ò #Ü�˜a˜SÐ!×"Ñ"ûð#úsh   ¦KÁAKÄK;Ä9A%L#È#BM Ë	K8ËK3Ë3K8Ë;	L ÌLÌL Ì#	MÌ,MÍMÍ	M1ÍM,Í,M1Ú__main__)r   )ÚrequestsrL   r#   rI   r	   ÚosÚgetenvrN   rF   r4   r   rQ   ÚHEADERSÚSessionr   ÚheadersÚupdater   r.   r?   rj   Ú__name__© r/   r   ú<module>ru      s˜   ð÷ ,× +Ó +Û 	à
ˆ"�)‰)�KÐ!2Ó
3€ØD€	Ø$€ØÐNÑN€Ø€àÐWÐ
X€Ø
ˆ(×
Ñ
Ó
€Ø ‡�× Ñ �wÔ ò$ó	ò"ò*LPð\ ˆzÒÙ…Fð r/   