Ë
    ¸¬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edz   Zddd	d
ddddœZdZ ej                   dd«      Z ej$                  «       ZddiZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)u¾  
èŽ’åŽ¿äººæ°‘æ”¿åºœ â€” çŽ¯è¯„ä¿¡æ�¯ çˆ¬è™«
site: www.juxian.gov.cn
æ �ç›®: /col/col310134/index.html?number=JU004002
åˆ—è¡¨: JS jpage åˆ†é¡µ â†’ POST /module/web/jpage/dataproxy.jsp
      body: startrecord/endrecord/perpage/unitid/webid/path/webname/columnid/permissiontype
      845æ�¡, 10æ�¡/é¡µ, 85é¡µ, <datastore><totalrecord>845</totalrecord>
è¯¦æƒ…: /art/2026/{m}/{d}/art_310134_{id}.html
è¯¦æƒ…ç»“æž„: meta ArticleTitle, div#zoom(æ­£æ–‡)
é    Nu   èŽ’åŽ¿-çŽ¯è¯„ä¿¡æ�¯zwww.juxian.gov.cnzhttp://www.juxian.gov.cnz/module/web/jpage/dataproxy.jspÚ10Ú619813Ú173zhttp://www.juxian.gov.cn/z6%E8%8E%92%E5%8E%BF%E4%BA%BA%E6%B0%91%E6%94%BF%E5%BA%9CÚ310134Ú0)ÚperpageÚunitidÚwebidÚpathÚwebnameÚcolumnidÚpermissiontypeiM  Ú	SEARCH_DBz/root/search.dbú
User-Agentz[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/125.0.0.0 Safari/537.36c                 ód  — t         j                  j                  |«      j                  d«      }t         j                  j                  | |t        d   ddœ¬«      }	 t         j                  j                  |dt        ¬«      }|j                  «       j                  dd¬	«      S # t        $ r Y y w xY w)
Núutf-8r   z!application/x-www-form-urlencoded)r   zContent-Type)ÚdataÚheadersé   ©ÚtimeoutÚcontextÚreplace©Úerrors)ÚurllibÚparseÚ	urlencodeÚencodeÚrequestÚRequestÚHEADERSÚurlopenÚCTXÚreadÚdecodeÚ	Exception)Úurlr   ÚbodyÚreqÚresps        ú&/root/gov_crawler/crawl_juxian_hjxx.pyÚ	http_postr-   #   sš   € Ü�<‰<×!Ñ! $Ó'×.Ñ.¨wÓ7€DÜ
�.‰.×
 Ñ
  ¨4Ü˜lÑ+Ø;ñ:Ð
 ó €CðÜ�~‰~×%Ñ% c°2¼sÐ%ÓCˆØ�y‰y‹{×!Ñ! '°)Ð!Ó<Ð<øÜò Ùðús   ÁAB# Â#	B/Â.B/c                 óú   — t         j                  j                  | t        ¬«      }	 t         j                  j	                  |dt
        ¬«      }|j                  «       j                  dd¬«      S # t        $ r Y y w xY w)N)r   r   r   r   r   r   )	r   r    r!   r"   r#   r$   r%   r&   r'   )r(   r*   r+   s      r,   Úhttp_getr/   /   si   € Ü
�.‰.×
 Ñ
  ¬gÐ
 Ó
6€CðÜ�~‰~×%Ñ% c°2¼sÐ%ÓCˆØ�y‰y‹{×!Ñ! '°)Ð!Ó<Ð<øÜò Ùðús   §AA. Á.	A:Á9A:c                 ó8  — t        t        «      }d|d<   d|d<   t        | «      |d<   t        t        |«      }|sg S g }t        j                  d|t
        j                  «      D ]´  }|j                  d«      }t        j                  d|«      }t        j                  d	|«      }|rb|j                  |j                  d
«      j                  «       |j                  d«      j                  «       |r|j                  d«      nddœ«       t        |«      dk\  sŒ³ |S  |S )u†   è°ƒ dataproxy æ‹¿ä¸€é¡µåˆ—è¡¨ â†’ [{title, url, pub_date}]
    è¯­ä¹‰: page=N è¿”å›žä»Žç¬¬Né¡µå¼€å§‹çš„å¤§å�—, å�–å‰�10æ�¡å�³ä¸ºè¯¥é¡µÚ1Ústartrecordr   Ú	endrecordÚpagez<li>(.*?)</li>é   z"href="([^"]+)"[^>]*title="([^"]*)"z(\d{4}-\d{2}-\d{2})é   Ú )Útitler(   Úpublish_dateé
   )ÚdictÚPROXY_PARAMSÚstrr-   Ú	PROXY_URLÚreÚfinditerÚDOTALLÚgroupÚsearchÚappendÚstripÚlen)r4   ÚparamsÚxmlÚitemsÚmÚliÚaÚds           r,   Úfetch_list_pagerN   7   s   € ô ”,Ó€FØ€Fˆ=ÑØ€Fˆ;ÑÜ˜“Y€Fˆ6�NÜ
”I˜vÓ
&€CÙØˆ	Ø€Eä�[‰[Ð*¨C´·±Ó;ò ˆØ�W‰W�Q‹ZˆÜ�I‰IÐ;¸RÓ@ˆÜ�I‰IÐ,¨bÓ1ˆÙØ�L‰LØŸ™ ›×)Ñ)Ó+Ø—w‘w˜q“z×'Ñ'Ó)Ù./ §¡¨¤
°Rñô ô
 ˆu‹:˜ÓØØ€Lðð €Ló    c                 ó‚  — t        | «      }|syd}t        j                  d|«      }|r|j                  d«      j	                  «       }d}t        j                  d|t        j
                  «      }|rÆ|j                  d«      j	                  «       }t        j                  dd|t        j
                  t        j                  z  ¬«      }t        j                  dd|t        j
                  t        j                  z  ¬«      }t        j                  d	d|t        j
                  ¬«      }|j	                  «       }|xs d|dd
œS )u+   èŽ·å�–è¯¦æƒ…ï¼šæ ‡é¢˜ã€�æ­£æ–‡HTMLã€�æ—¥æœŸNr7   z+<meta name="ArticleTitle" content="([^"]+)"r5   z<div id="zoom"[^>]*>(.*?)</div>z<script[^>]*>.*?</script>)Úflagsz<style[^>]*>.*?</style>z
<!--.*?-->)r8   ÚcontentÚdate)r/   r?   rC   rB   rE   rA   ÚsubÚI)r(   Úhtmlr8   Úm_trR   Úm_cs         r,   Úfetch_detailrY   Q   sñ   € ä�C‹=€DÙØà€EÜ
�)‰)ÐBÀDÓ
I€CÙ
Ø—	‘	˜!“×"Ñ"Ó$ˆà€GÜ
�)‰)Ð6¸¼b¿i¹iÓ
H€CÙ
Ø—)‘)˜A“,×$Ñ$Ó&ˆÜ—&‘&Ð5°r¸7Ì"Ï)É)ÔTV×TXÑTXÉ.ÔYˆÜ—&‘&Ð3°R¸ÌÏ	É	ÔRT×RVÑRVÉÔWˆÜ—&‘&˜¨¨G¼2¿9¹9ÔEˆØ—-‘-“/ˆà’[˜b¨W¸bÑAÐArO   c                  óî   — t        j                  t        «      } | j                  d«       	 | j                  d«       | j                  «        | j                  «        y # t         j                  $ r Y Œ6w xY w)Naa  CREATE TABLE IF NOT EXISTS gov_raw (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        site_name TEXT, source_url TEXT, page_url TEXT,
        title TEXT, publish_date TEXT, date_rank INTEGER DEFAULT 0,
        summary TEXT, status TEXT, category TEXT DEFAULT '',
        visits INTEGER DEFAULT 0, content TEXT DEFAULT '', tags TEXT DEFAULT ''
    )z²CREATE VIRTUAL TABLE IF NOT EXISTS gov_search USING fts5(
            title, content, site_name,
            content='gov_raw', content_rowid='id', tokenize='unicode61'
        ))Úsqlite3Úconnectr   ÚexecuteÚOperationalErrorÚcommitÚclose)Úconns    r,   Úinit_dbrb   g   se   € Ü�?‰?œ9Ó%€DØ‡L�Lð 	ô 
ðØ�‰ð ô 	ð 	‡K�K„MØ‡J�J…Løô ×#Ñ#ò Ùðús   ¬A ÁA4Á3A4c                  óR  — dd l } | j                  «       }|j                  ddd¬«       |j                  dt        dd¬	«       |j	                  «       }t        «        t        d
z   dz  }|j                  r|n|j                  }|j                  rdnd|› d�}t        dt        › d|› d�«       t        dt        › d|› d�«       t        «        t        j                  t        «      }|j                  «       }d}d}	t        d|dz   «      D �]Ü  }
t!        |
«      }|st        d|
d›d|› d�«       Œ%d}d}|D �]d  }|j#                  d|d   t        f«      j%                  «       }|r|dz  }|	dz  }	Œ:t'        |d   «      }|rM|j)                  dd«      }|j)                  d«      xs |d   }|j)                  d|j)                  dd«      «      }nd}|d   }|j)                  dd«      }|s|dz  }|	dz  }	Œ½	 |j#                  d ||||d   t*        t        d!f«       |j,                  dkD  rt|j.                  }	 t1        j2                  d"d#|«      }t1        j2                  d$d#|«      j5                  «       d d% xs |}|j#                  d&||t        |f«       |dz  }|dz  }�Œg |j9                  «        t        d|
d›d|› d't;        |«      › d(|› d)|› d*�«       t=        j>                  d+«       �Œß |jA                  «        t        d,|› d-|	› �«       y # t6        $ r Y Œ‡w xY w# t6        $ r Y �Œòw xY w).Nr   z--fullÚ
store_trueu   å…¨é‡�85é¡µ)ÚactionÚhelpz--pagesr5   u   æŒ‡å®šé¡µæ•°)ÚtypeÚdefaultrf   é	   r:   u   å…¨é‡�u   å¢žé‡�(u   é¡µ)u   ðŸ”� u    â€” u   æ¨¡å¼�u     æ€»æ�¡æ•°: u   , æœ¬æ¬¡çˆ¬å�–: u   é¡µz  [pÚ2dú/u   ] âœ— APIæ— æ•°æ�®z6SELECT 1 FROM gov_raw WHERE page_url=? AND site_name=?r(   rR   r7   r8   rS   r9   z|INSERT OR IGNORE INTO gov_raw (title, content, publish_date, page_url, source_url, site_name, status) VALUES (?,?,?,?,?,?,?)Ú	publishedz<[^>]+>ú z\s+éÈ   zSINSERT OR IGNORE INTO gov_search(rowid, title, site_name, summary) VALUES (?,?,?,?)u   ] âœ“ u   æ�¡ (æ–°å¢žu    è·³è¿‡ú)g333333Ó?u   
ðŸ“Š å®Œæˆ�ï¼�æ–°å¢ž: u    | è·³è¿‡: )!ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsrb   ÚTOTAL_RECORDSÚfullÚpagesÚprintÚ	SITE_NAMEr[   r\   r   ÚcursorÚrangerN   r]   ÚfetchonerY   ÚgetÚDOMAINÚrowcountÚ	lastrowidr?   rT   rE   r'   r_   rF   ÚtimeÚsleepr`   )rp   ÚparserÚargsÚtotal_pagesÚpages_to_crawlÚmodera   ÚcurÚ	new_totalÚ
skip_totalr4   rI   Úpage_newÚ	page_skipÚitemÚexistsÚdetailrR   r8   rS   Úrow_idÚplains                         r,   Úmainr’   z   sU  € ÛØ×$Ñ$Ó&€FØ
×Ñ˜¨¸MÐÔJØ
×Ñ˜	¬°Q¸^ÐÔLØ×ÑÓ€Dä„IÜ  1Ñ$¨Ñ+€KØ$(§I¢I‘[°4·:±:€NØ—y’y‰8¨°Ð/?¸tÐ&D€Dä	ˆE”)�˜E $  vÐ
.Ô/Ü	ˆMœ-˜Ð(8¸Ð8HÈÐ
LÔMÜ	„Gä�?‰?œ9Ó%€DØ
�+‰+‹-€Cà€IØ€JÜ�a˜¨!Ñ+Ó,ó :ˆÜ Ó%ˆÙÜ�D˜˜b˜	  >Ð"2Ð2DÐEÔFØàˆØˆ	Øó .	ˆDØ—[‘[ØHØ�e‘œiÐ(ó÷ ‰h‹jð ñ Ø˜Q‘�	Ø˜a‘�
Øä! $ u¡+Ó.ˆFÙØ Ÿ*™* Y°Ó3�ØŸ
™
 7Ó+Ò<¨t°G©}�Ø—z‘z &¨$¯(©(°>À2Ó*FÓG‘à�Ø˜W™�Ø—x‘x °Ó3�áØ˜Q‘�	Ø˜a‘�
ØðØ—‘ð-ð ˜G T¨4°©;¼Ä	È;ÐWô	ð —<‘< !Ò#Ø Ÿ]™]�FðÜ "§¡ z°3¸Ó @˜Ü "§¡ v¨s°EÓ :× @Ñ @Ó BÀ4ÀCÐ HÒ QÈE˜ØŸ™ØqØ# U¬I°uÐ=ôð  ‘M�HØ ‘N�IùðY.	ð` 	�‰ŒÜ��T˜"�I˜Q˜~Ð.¨f´S¸³Z°LÀÈHÈ:ÐU\Ð]fÐ\gÐghÐiÔjÜ�
‰
�3Žðu:ðx 	‡J�J„LÜ	Ð$ Y K¨{¸:¸,Ð
GÕHøô %ò Ùðûô ò Úðús7   Ç1?LÈ1AL
Ê
LÌ
	LÌLÌLÌLÌ	L&Ì%L&Ú__main__)Ú__doc__r?   ÚsysÚosr[   r�   Úurllib.requestr   ÚsslÚurllib.parsery   r~   ÚBASE_URLr>   r<   ru   Úgetenvr   Ú_create_unverified_contextr$   r"   r-   r/   rN   rY   rb   r’   Ú__name__© rO   r,   ú<module>rŸ      s¼   ðñ	÷ E× D× D× Dà!€	Ø	€Ø%€ØÐ8Ñ8€	àØØØ'ØGØØñ€ð €àˆB�I‰I�kÐ#4Ó5€	Ø$€c×$Ñ$Ó&€àÐoð€ò
òòò4Bò,ò&RIðh ˆzÒÙ…Fð rO   