Ë
    ¸¬ujy  ã                   ó&  — 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mZ  ej                  dd«      Z	dZ
dZdZd	Zd
dddœZ ej                  «        ed¬«      z
  j!                  d«      Z ede› �«       dZdad„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)uA  å¸¸å¾·ç»�æµŽæŠ€æœ¯å¼€å�‘åŒº - é€šçŸ¥å…¬å‘Š çˆ¬è™«
PowerCMSï¼Œé�™æ€�HTMLåˆ—è¡¨+è¯¦æƒ…é¡µ
åˆ—è¡¨ /zhdt/tzgg ~ /zhdt/tzgg_60ï¼Œ20æ�¡/é¡µï¼Œå…±1185æ�¡
æ­£æ–‡ä»Ž <div class="article_txt"> æ��å�–
/etc/hosts: 223.111.128.46 cdjkq.changde.gov.cn (CloudWAF)
æ³¨æ„�: CloudWAFé™�åˆ¶æ¯�ç§’1æ¬¡è¯·æ±‚ï¼Œæ‰€æœ‰è¯·æ±‚é—´éš”è‡³å°‘1.5ç§’
é    N)ÚdatetimeÚ	timedeltaÚ	SEARCH_DBz/root/search.dbu   å¸¸å¾·ç»�å¼€åŒº-é€šçŸ¥å…¬å‘Šzhttps://cdjkq.changde.gov.cné   é   zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36z?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ÚAcceptzAccept-LanguageiG  )Údaysz%Y-%m-%du   [info] æ—¥æœŸè¿‡æ»¤: >= g      ø?c                 ó  — t        j                   «       t        z
  }|t        k  rt        j                  t        |z
  «       	 t	        j
                  | t        dd¬«      }d|_        t        j                   «       ad|j                  v rDt        d«       t        j                  d«       t	        j
                  | t        dd¬«      }d|_        |j                  S # t        $ r}t        d| d	d  › d
|› �«       Y d }~yd }~ww xY w)Né   F)ÚheadersÚtimeoutÚverifyzutf-8u#   ç–‘ä¼¼æ­£åœ¨å¯¹ç½‘ç«™è¿›è¡ŒCCæ”»å‡»u)   [warn] WAFæ‹¦æˆª! ç­‰å¾…60ç§’å�Žé‡�è¯•...é<   u   [error] è¯·æ±‚å¤±è´¥: iÄÿÿÿz, Ú )ÚtimeÚ_last_req_timeÚREQUEST_INTERVALÚsleepÚrequestsÚgetÚHEADERSÚencodingÚtextÚprintÚ	Exception)ÚurlÚelapsedÚrÚes       ú /root/gov_crawler/crawl_cdjkq.pyÚfetchr!   $   sÍ   € ô �i‰i‹kœNÑ*€GØÔ!Ò!Ü�
‰
Ô# gÑ-Ô.ðÜ�L‰L˜¤g°rÀ%ÔHˆØˆŒ
ÜŸ™›ˆà0°A·F±FÑ:ÜÐ=Ô?Ü�J‰J�rŒNÜ—‘˜S¬'¸2ÀeÔLˆAØ ˆAŒJØ�v‰vˆøÜò ÜÐ& s¨3¨4 y k°°A°3Ð7Ô8Üûðús   ÁBC Ã	C?Ã!C:Ã:C?c                 ó\  — g }d}t        j                  || «      D ]Ž  }|j                  d«      j                  «       }|j                  d«      j                  «       }|j                  d«      j                  «       }|j	                  d«      s	t
        |z   }|j                  |||dœ«       Œ� |S )u5   ä»Žåˆ—è¡¨é¡µè§£æž�æ�¡ç›®: <li> â†’ date + url + titlezU<li[^>]*>\s*<span class="date">([^<]+)</span>\s*<a href="([^"]+)"[^>]*title="([^"]*)"é   é   é   Úhttp)ÚtitleÚdater   )ÚreÚfinditerÚgroupÚstripÚ
startswithÚBASE_URLÚappend)ÚhtmlÚitemsÚpatternÚmr(   r   r'   s          r    Úparse_list_itemsr4   :   sœ   € à€Eð
 g€GÜ�[‰[˜ $Ó'ò AˆØ�w‰w�q‹z×ÑÓ!ˆØ�g‰g�a‹j×ÑÓ ˆØ—‘˜“
× Ñ Ó"ˆØ�~‰~˜fÔ%Ü˜S‘.ˆCØ�‰˜u¨d¸3Ñ?Õ@ðAð €Ló    c                 ó  — t        j                  d| «      }|st        j                  d| «      }|rO|j                  d«      j                  «       }t        j                  dd|«      }t        j                  dd|«      }|S y)u6   ä»Žè¯¦æƒ…é¡µæ��å�– <div class="article_txt"> å†…æ­£æ–‡z><div class="article_txt"[^>]*>([\s\S]*?)</div>\s*</div>\s*<!--z.<div class="article_txt"[^>]*>([\s\S]*?)</div>r#   z<script[^>]*>[\s\S]*?</script>r   z<style[^>]*>[\s\S]*?</style>)r)   Úsearchr+   r,   Úsub)r0   r3   Úcontents      r    Úfetch_detailr:   L   sq   € ô 	�	‰	ÐSÐUYÓZ€AÙÜ�I‰IÐGÈÓNˆÙØ—'‘'˜!“*×"Ñ"Ó$ˆä—&‘&Ð:¸BÀÓHˆÜ—&‘&Ð8¸"¸gÓFˆØˆØr5   c                  ó  — dd l } | j                  t        «      }|j                  «       }|j	                  d«       |j	                  d«       |j                  «        d}d}d}d}t        dt        dz   «      D �]4  }|dk(  r
t        › d�}nt        › d|› �}t        |«      }	|	s|dz  }Œ1t        |	«      }
|
st        d|› d�«       ŒNd}d}|
D ]¦  }|d	   }|t        k  r|dz  }Œ|d
   }|d   }|j	                  d|f«       |j                  «       d   dkD  r|dz  }ŒPt        |«      }|s|dz  }Œct        |«      }|sd|› �}	 |j	                  d|||t        ||df«       |j                   dkD  r|dz  }Œ¨ |j                  «        ||z  }||z  }t        d|› dt        › d|› d|› d|› �
«       �Œ7 |j%                  «        t        dt        › d|› d|› d|› d|› �
«       y # t"        $ r}t        d|› �«       |dz  }Y d }~�Œ5d }~ww xY w)Nr   zPRAGMA journal_mode=WALa7  CREATE TABLE IF NOT EXISTS gov_raw (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        page_url TEXT UNIQUE,
        title TEXT,
        content TEXT,
        site_name TEXT,
        publish_date TEXT,
        summary TEXT,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        category TEXT
    )r#   z
/zhdt/tzggz/zhdt/tzgg_u
   [warn] ç¬¬u   é¡µæœªè§£æž�åˆ°æ�¡ç›®r(   r'   r   z-SELECT COUNT(*) FROM gov_raw WHERE page_url=?u   [æ— æ­£æ–‡] z»
                    INSERT OR IGNORE INTO gov_raw (page_url, title, content, site_name, publish_date, summary, category)
                    VALUES (?, ?, ?, ?, ?, ?, ?)
                u   é€šçŸ¥å…¬å‘Šu     [error] å…¥åº“å¤±è´¥: z[page ú/z] +z new, z dup, total: u
   
[å®Œæˆ�] u	   : æ–°å¢ž u    æ�¡, é‡�å¤�è·³è¿‡ u   , è¶…3å¹´è·³è¿‡ u	   , é”™è¯¯ )Úsqlite3ÚconnectÚDB_PATHÚcursorÚexecuteÚcommitÚrangeÚTOTAL_PAGESr.   r!   r4   r   ÚCUTOFF_DATEÚfetchoner:   Ú	SITE_NAMEÚrowcountr   Úclose)r=   ÚconnÚcÚ	new_countÚ
skip_countÚold_skipÚ	err_countÚpager   r0   r1   Úpage_newÚ	page_skipÚitemr(   r'   Údetail_htmlr9   r   s                      r    ÚmainrU   [   s�  € Ûà�?‰?œ7Ó#€DØ�‰‹€AØ‡I�IÐ'Ô(ð ‡I�Ið 
	ô 

ð 	‡K�K„Mà€IØ€JØ€HØ€Iä�aœ q™Ó)ó 9cˆØ�1Š9Ü�J˜jÐ)‰Cä�J˜k¨$¨Ð0ˆCä�S‹zˆÙØ˜‰NˆIØä  Ó&ˆÙÜ�J˜t˜fÐ$9Ð:Ô;ØàˆØˆ	Øò "	ˆDØ˜‘<ˆDØ”kÒ!Ø˜A‘�Øà˜‘MˆEØ�u‘+ˆCð �I‰IÐEÈÀvÔNØ�z‰z‹|˜A‰ Ò"Ø˜Q‘�	Øô   ›*ˆKÙØ˜Q‘�	Øä" ;Ó/ˆGÙØ(¨¨Ð0�ð	Ø—	‘	ð ð ˜5 '¬9°d¸EÀ>ÐRôTð —:‘: ’>Ø ‘M�Høð?"	ðH 	�‰ŒØ�XÑˆ	Ø�iÑˆ
Ü��t�f˜Aœk˜]¨#¨h¨Z°v¸i¸[ÈÐV_ÐU`ÐaÖbðs9cðv 	‡J�J„LÜ	ˆKœ	�{ )¨I¨;Ð6IÈ*ÈÐUeÐfnÐeoÐoxð  zCð  yDð  Eõ  Føô ò ÜÐ0°°Ð4Ô5Ø˜Q‘–	ûðús   Å1GÇ	HÇ'H È HÚ__main__)Ú__doc__ÚosÚsysr)   r   r   r   r   Úgetenvr?   rG   r.   rD   Ú	PAGE_SIZEr   ÚnowÚstrftimerE   r   r   r   r!   r4   r:   rU   Ú__name__© r5   r    ú<module>r`      sÄ   ðñó 
Û 
Û 	Û Û ß (à
ˆ"�)‰)�KÐ!2Ó
3€Ø*€	Ø)€Ø€Ø€	ð DØOØ0ñ€ð ˆx�|‰|‹~¡	¨uÔ 5Ñ5×?Ñ?À
ÓK€Ù Ð   Ð.Ô /ð Ð Ø€òò,ò$òVFðr ˆzÒÙ…Fð r5   