Ë
    ¸¬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mZm	Z	 ej                  j                  dd«      ZdZdZdZ ej                   «        e	d	¬
«      z
  j#                  d«      ZdddœZddlZ ej*                  «       Zej.                  j1                  e«       dd„Zd„ Zd„ Zd„ Zedk(  r e«        yy)uE   crawl_ganyu_haitou.py â€” èµ£æ¦†åŒºæµ·å¤´é•‡äººæ°‘æ”¿åºœ-æ”¿åºœæ–‡ä»¶é    N)ÚdatetimeÚ	timedeltaÚ	SEARCH_DBz/root/search.dbu+   èµ£æ¦†åŒºæµ·å¤´é•‡äººæ°‘æ”¿åºœ-æ”¿åºœæ–‡ä»¶z2https://www.ganyu.gov.cn/gyqhtzrmzf/zfwj/zfwj.htmlzhttps://www.ganyu.gov.cniG  )Údaysz%Y-%m-%dzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36zzh-CN,zh;q=0.9)z
User-AgentzAccept-Languagec                 óÒ   — t        d«      D ].  }	 t        j                  | |¬«      }d|_        |j                  c S  y # t
        $ r}t        j                  d«       Y d }~ŒUd }~ww xY w)Né   ©Útimeoutzutf-8é   )ÚrangeÚsessÚgetÚencodingÚtextÚ	ExceptionÚtimeÚsleep)Úurlr
   Ú_ÚrÚes        ú'/root/gov_crawler/crawl_ganyu_haitou.pyÚfetchr      s`   € Ü�1‹Xò ˆð	Ü—‘˜ g�Ó.ˆAØ ˆAŒJØ—6‘6ŠMð	ð øô ò 	Ü�J‰J�q�M‰Mûð	ús   �)>¾	A&ÁA!Á!A&c           
      ó.  — t        j                  d| t         j                  «      }|sg S g }t        j                  d|j	                  d«      t         j                  «      D �]1  }t        j                  d|j	                  d«      t         j                  «      }|sŒ;t        j                  d|j	                  d«      «      }t        j                  d|j	                  d«      «      }t        j                  d|j	                  d«      «      }|r|sŒ¯|j                  |r|j	                  d«      j                  «       ndt        j                  j                  t        |j	                  d«      «      |j	                  d«      j                  «       f«       �Œ4 |S )	u'   è§£æž� #initData ä¸­å…¨éƒ¨ 18 æ�¡è®°å½•uA   <div\s+id="initData"[^>]*>(.*?)</div>\s*<!--åˆ—è¡¨å†…å®¹ç»“æ�Ÿ-->z+<ul\s+class="xxgk-list-con"[^>]*>(.*?)</ul>r   z<li>(.*?)</li>z<a\s+href="([^"]*)"z<span>([^<]+)</span>ztitle="([^"]*)"Ú )ÚreÚsearchÚDOTALLÚfinditerÚgroupÚappendÚstripÚurllibÚparseÚurljoinÚBASE)ÚhtmlÚmÚrecordsÚulÚliÚaÚspanÚtitle_as           r   Ú
parse_listr/   "   s0  € ä
�	‰	ÐVÐX\Ô^`×^gÑ^gÓh€AÙØˆ	Ø€GÜ�k‰kÐHÈ!Ï'É'ÐRSË*ÔVX×V_ÑV_Ó`ó ˆÜ�Y‰YÐ(¨"¯(©(°1«+´r·y±yÓAˆÙØÜ�I‰IÐ,¨b¯h©h°q«kÓ:ˆÜ�y‰yÐ0°"·(±(¸1³+Ó>ˆÜ—)‘)Ð.°·±¸³Ó<ˆÙ™ØØ�‰Ù(/ˆG�M‰M˜!Ó×"Ñ"Ô$°RÜ�L‰L× Ñ ¤ q§w¡w¨q£zÓ2Ø�J‰J�q‹M×ÑÓ!ð
ö 	ðð €Nó    c                 ó^  — t        j                  d| t         j                  «      }|r|j                  d«      j	                  «       nd}t        j                  d| t         j                  «      }|s%t        j                  d| t         j                  «      }|r|j                  d«      j	                  «       nd}t        j
                  dd|t         j                  ¬«      }t        j
                  dd|t         j                  ¬«      }t        j
                  d	d|«      }||j	                  «       fS )
u   æ��å�–æ ‡é¢˜ + æ­£æ–‡z*<div\s+class="art-title">\s*(.*?)\s*</div>r   r   zO<div\s+class="art-main"\s+id="zoom"[^>]*>(.*?)</div>\s*<div\s+class="art-print"z4<div\s+class="art-main"\s+id="zoom"[^>]*>(.*?)</div>z<script[^>]*>.*?</script>)Úflagsz<style[^>]*>.*?</style>z<p>\s*(?:<br\s*/?>\s*)*</p>)r   r   r   r    r"   Úsub)r'   ÚtÚtitler(   Úcontents        r   Úparse_detailr7   9   sÛ   € ä
�	‰	Ð?ÀÄrÇyÁyÓQ€AÙ"#ˆA�G‰G�A‹J×ÑÔ¨€EÜ
�	‰	ÐdÐfjÔln×luÑluÓv€AÙÜ�I‰IÐMÈtÔUW×U^ÑU^Ó_ˆÙ$%ˆa�g‰g�a‹j×ÑÔ ¨2€Gä�f‰fÐ1°2°wÄbÇiÁiÔP€GÜ�f‰fÐ/°°WÄBÇIÁIÔN€GÜ�f‰fÐ3°R¸ÓA€GØ�'—-‘-“/Ð!Ð!r0   c                  ó  — t        dt        j                  «       j                  d«      › dt        › �«       t        t        «      } | st        d«       y t        | «      }t        dt        |«      › d�«       |D ���cg c]  \  }}}|t        k\  sŒ|||f‘Œ }}}}t        dt        |«      › dt        |«      t        |«      z
  › d	�«       t        j                  t        d
¬«      }|j                  «       }dx}x}	}
t        |d«      D �](  \  }\  }}}t        d|› dt        |«      › d|d d
 › d�d¬«       |j                  d|t        f«      j!                  «       }|rt        d«       |	dz  }	Œgt        |«      }|st        d«       |
dz  }
Œ…t#        |«      \  }}|xs |}	 |j                  dt        |||||f«       |j$                  r|dz  }t        dt        |«      › d�«       nt        d«       |	dz  }	|j)                  «        t+        j,                  t/        j0                  dd«      «       �Œ+ |j3                  «        t        d|› d|	› d|
› �«       y c c}}}w # t&        $ r}t        d|› �«       |
dz  }
Y d }~Œ‰d }~ww xY w) Nú[z%H:%M:%Sz] u   [ERROR] åˆ—è¡¨é¡µèŽ·å�–å¤±è´¥u   å…± u
    æ�¡è®°å½•u	   è¿‘3å¹´: u    æ�¡ (è¿‡æ»¤ u    æ�¡)é   r	   r   r   z  [ú/z...ú )Úendz6SELECT 1 FROM gov_raw WHERE page_url=? AND site_name=?Ú	DUPLICATEz	FETCH ERRz’INSERT OR IGNORE INTO gov_raw
                (site_name, title, page_url, publish_date, source_url, content)
                VALUES (?,?,?,?,?,?)zOK (zB)zDUP(insert)zERR: g333333Ó?g      à?u   
âœ… æ–°å…¥åº“: u
     è·³è¿‡: u
     é”™è¯¯: )Úprintr   ÚnowÚstrftimeÚ	SITE_NAMEr   ÚLIST_URLr/   ÚlenÚCUTOFFÚsqlite3ÚconnectÚDB_PATHÚcursorÚ	enumerateÚexecuteÚfetchoner7   Úrowcountr   Úcommitr   r   ÚrandomÚuniformÚclose)r'   r)   r4   ÚuÚdÚrecentÚconnÚcÚnewÚskipÚerrÚir5   r   Úpub_dateÚdupÚdhÚdtr6   Úfinal_titler   s                        r   Úmainr`   H   sw  € Ü	ˆAŒh�l‰l‹n×%Ñ% jÓ1Ð2°"´Y°KÐ
@ÔAä”‹?€DÙÜÐ-Ô.Øä˜Ó€GÜ	ˆD”�W“�˜jÐ
)Ô*à'.×>Ð>™G˜A˜q !°!´v³+ˆq�!�QŠiÐ>€FÒ>Ü	ˆI”c˜&“k�] -´°G³¼sÀ6»{Ñ0JÐ/KÈ5Ð
QÔRä�?‰?œ7¨BÔ/€DØ�‰‹€AØÐ€CÐˆ$�ä%.¨v°qÓ%9ó %-Ñ!ˆÑ!ˆE�3˜Ü��A�3�aœ˜F›�} B u¨S¨b z l°#Ð6¸CÕ@à�i‰iØDØ”)Ðó
÷ ‰(‹*ð 	ñ Ü�+ÔØ�A‰IˆDØä�3‹ZˆÙÜ�+ÔØ�1‰HˆCØä" 2Ó&‰ˆˆGØ’k˜Eˆð	Ø�I‰Ið (ô ˜K¨¨h¸¸WÐEôGð �zŠzØ�q‘�Ü˜œS ›\˜N¨"Ð-Õ.ä�mÔ$Ø˜‘	�ð
 	�‰ŒÜ�
‰
”6—>‘> # sÓ+Ö,ðK%-ðN 	‡J�J„LÜ	Ð˜c˜U *¨T¨F°*¸S¸EÐ
BÕCùô_ ?øôN ò 	Ü�E˜!˜�+ÔØ�1‰H�Cûð	ús%   Á=IÂIÆ"AI É 	JÉ)JÊJÚ__main__)é   )Ú__doc__Úosr   rF   r   rO   Úurllib.parser#   r   r   Úenvironr   rH   rB   rC   r&   r@   rA   rE   ÚHEADERSÚrequestsÚSessionr   ÚheadersÚupdater   r/   r7   r`   Ú__name__© r0   r   ú<module>rn      s»   ðá Kç 2× 2× 2ß (à
�*‰*�.‰.˜Ð&7Ó
8€Ø9€	Ø?€Ø!€Ø
ˆ(�,‰,‹.™9¨%Ô0Ñ
0×	:Ñ	:¸:Ó	F€ð DØ'ñ€ó
 Ø€x×ÑÓ€Ø ‡�× Ñ �GÔ óòò."ò:Dðz ˆzÒÙ…Fð r0   