Ë
    ¸¬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Z	dZ
dZ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.xuanzhou.gov.cn
æ �ç›®: /Jczwgk/showList/0/111000000/page_N.html
é    Nu   å®£å·žåŒº-ç”Ÿæ€�çŽ¯å¢ƒzwww.xuanzhou.gov.cnzhttps://www.xuanzhou.gov.cnz-/Jczwgk/showList/0/111000000/page_{page}.htmléO   Ú	SEARCH_DBz/root/search.dbz
User-Agentz[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/125.0.0.0 Safari/537.36c                 ó  — t         j                  j                  | t        ¬«      }	 t         j                  j	                  |dt
        ¬«      }|j                  «       j                  dd¬«      S # t        $ r
}Y d }~y d }~ww xY w)N)Úheadersé   )ÚtimeoutÚcontextzutf-8Úreplace)Úerrors)	ÚurllibÚrequestÚRequestÚHEADERSÚurlopenÚCTXÚreadÚdecodeÚ	Exception)ÚurlÚreqÚrespÚes       ú(/root/gov_crawler/crawl_xuanzhou_sthj.pyÚhttp_getr      sj   € Ü
�.‰.×
 Ñ
  ¬gÐ
 Ó
6€CðÜ�~‰~×%Ñ% c°2¼sÐ%ÓCˆØ�y‰y‹{×!Ñ! '°)Ð!Ó<Ð<øÜò Üûðús   §AA. Á.	BÁ<Bc                 ó\  — g }t        j                  d| t         j                  «      }|r|j                  d«      n| }t        j                  d|t         j                  «      D ]Ç  }|j                  d«      j                  «       }|j                  d«      j                  «       }|j                  d«      j                  «       xs4 t        j                  dd|j                  d«      «      j                  «       }|j                  d	«      s	t        |z   }|j                  |||d
d dœ«       ŒÉ |S )uD   è§£æž�åˆ—è¡¨é¡µï¼š<li><span>æ—¥æœŸ</span><a href=...>æ ‡é¢˜</a></li>z8class="m-liststyle2"[^>]*>(.*?)</div>\s*</div>\s*<scripté   zZ<li>\s*<span>([^<]*)</span>\s*<a href="([^"]+)"[^>]*title="([^"]*)"[^>]*>(.*?)</a>\s*</li>é   é   ú<[^>]+>Ú é   ÚhttpNé
   )Útitler   Úpublish_date)
ÚreÚsearchÚDOTALLÚgroupÚfinditerÚstripÚsubÚ
startswithÚBASE_URLÚappend)ÚhtmlÚitemsÚm_areaÚareaÚmÚdateÚhrefr$   s           r   Úparse_list_pager7      sõ   € à€Eä�Y‰YÐRÐTXÔZ\×ZcÑZcÓd€FÙ$ˆ6�<‰<˜Œ?¨$€Dä�[‰[ØeØŒb�i‰ióò 	Oˆð �w‰w�q‹z×ÑÓ!ˆØ�w‰w�q‹z×ÑÓ!ˆØ—‘˜“
× Ñ Ó"ÒP¤b§f¡f¨Z¸¸Q¿W¹WÀQ»ZÓ&H×&NÑ&NÓ&PˆØ�‰˜vÔ&Ü˜d‘?ˆDØ�‰˜u¨TÀ4ÈÈÀ9ÑMÕNð	Oð €Ló    c                 óx  — t        | «      }|syd}t        j                  d|«      }|st        j                  d|«      }|r|j                  d«      j	                  «       }d}t        j                  d|«      }|r"|j                  d«      j	                  «       dd }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
                  ¬
«      }t        j                  dd|t        j
                  ¬
«      }|j	                  «       }|xs d||dœS )u+   èŽ·å�–è¯¦æƒ…ï¼šæ ‡é¢˜ã€�æ­£æ–‡HTMLã€�æ—¥æœŸNr    z+<meta name="ArticleTitle" content="([^"]+)"u"   <title>([^<]+)--æ ‡å‡†åŒ–è§„èŒƒåŒ–r   z&<meta name="PubDate" content="([^"]+)"r#   zN<div class="m-dttexts f-clearfix j-fontContent" id="zoom">(.*?)</div>\s*</div>z<script[^>]*>.*?</script>)Úflagsz<style[^>]*>.*?</style>z%<div class="m-related-info">.*?</div>z<div class="m-share">.*?</div>)r$   Úcontentr5   )r   r&   r'   r)   r+   r(   r,   ÚI)r   r0   r$   Úm_tr5   Úm_dr;   Úm_cs           r   Úfetch_detailr@   1   sk  € ä�C‹=€DÙØð €EÜ
�)‰)ÐBÀDÓ
I€CÙÜ�i‰iÐ=¸tÓDˆÙ
Ø—	‘	˜!“×"Ñ"Ó$ˆð €DÜ
�)‰)Ð=¸tÓ
D€CÙ
Ø�y‰y˜‹|×!Ñ!Ó# C RÐ(ˆð €GÜ
�)‰)ØYØŒb�i‰ió€Cñ Ø—)‘)˜A“,×$Ñ$Ó&ˆÜ—&‘&Ð5°r¸7Ì"Ï)É)ÔTV×TXÑTXÉ.ÔYˆÜ—&‘&Ð3°R¸ÌÏ	É	ÔRT×RVÑRVÉÔWˆÜ—&‘&ÐAÀ2ÀwÔVX×V_ÑV_Ô`ˆÜ—&‘&Ð:¸BÀÌrÏyÉyÔYˆØ—-‘-“/ˆð ’˜"ØØñð r8   c                 ór   — t        j                  d| «      }|rt        |j                  d«      «      S t        S )u"   ä»Žpaginationæ ‡ç­¾èŽ·å�–æ€»é¡µæ•°zpagecount="(\d+)"r   )r&   r'   Úintr)   ÚTOTAL_PAGES)r0   r4   s     r   Úget_total_pagesrD   Y   s.   € ä
�	‰	Ð&¨Ó-€AÙÜ�1—7‘7˜1“:‹ÐÜÐr8   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_dbrM   `   se   € Ü�?‰?œ9Ó%€DØ‡L�Lð 	ô 
ðØ�‰ð ô 	ð 	‡K�K„MØ‡J�J…Løô ×#Ñ#ò Ùðús   ¬A ÁA4Á3A4c                  óB  — dd l } | j                  «       }|j                  ddd¬«       |j                  dt        dd¬	«       |j	                  «       }t        «        |j                  rt        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 �]U  }	t         t"        j%                  |	¬«      z   }
t'        |
«      }|st        d|	d›d|› d�«       ŒBt)        |«      }|st        d|	d›d|› d�«       Œcd}d}|D �]d  }|j+                  d|d   t        f«      j-                  «       }|r|dz  }|dz  }Œ:t/        |d   «      }|rM|j1                  dd«      }|j1                  d«      xs |d   }|j1                  d|j1                  dd«      «      }nd}|d   }|j1                  dd«      }|s|dz  }|dz  }Œ½	 |j+                  d ||||d   t2        t        d!f«       |j4                  dkD  rt|j6                  }	 t9        j:                  d"d#|«      }t9        j:                  d$d#|«      j=                  «       d d% xs |}|j+                  d&||t        |f«       |dz  }|dz  }�Œg |jA                  «        t        d|	d›d|› d'tC        |«      › d(|› d)|› d*�«       d+}|D ]   }|j1                  dd«      }|sŒ|d,k\  sŒd-} n |r|	dkD  rt        d.«        ntE        jF                  d/«       �ŒX |jI                  «        t        d0|› d1|› �«       y # t>        $ r Y ŒÂw xY w# t>        $ r}Y d }~�Œ0d }~ww xY w)2Nr   z--fullÚ
store_trueu   å…¨é‡�53é¡µ)ÚactionÚhelpz--pagesr   u   æŒ‡å®šé¡µæ•°)ÚtypeÚdefaultrQ   u   å…¨é‡�u   å¢žé‡�(u   é¡µ)u   ðŸ”� u    â€” u   æ¨¡å¼�u     æ€»é¡µæ•°: u   , æœ¬æ¬¡çˆ¬å�–: u   é¡µ)Úpagez  [pÚ2dú/u   ] âœ— HTTPå¤±è´¥u   ] âœ— æœªè§£æž�åˆ°æ�¡ç›®z6SELECT 1 FROM gov_raw WHERE page_url=? AND site_name=?r   r;   r    r$   r5   r%   z|INSERT OR IGNORE INTO gov_raw (title, content, publish_date, page_url, source_url, site_name, status) VALUES (?,?,?,?,?,?,?)Ú	publishedr   ú z\s+éÈ   zSINSERT OR IGNORE INTO gov_search(rowid, title, site_name, summary) VALUES (?,?,?,?)u   ] âœ“ u   æ�¡ (æ–°å¢žu    è·³è¿‡ú)Tz
2023-06-19Fu%     â�¹ è¶…è¿‡3å¹´æ—¶é—´èŒƒå›´ï¼Œå�œæ­¢g333333Ó?u   
ðŸ“Š å®Œæˆ�ï¼�æ–°å¢ž: u    | è·³è¿‡: )%ÚargparseÚArgumentParserÚadd_argumentrB   Ú
parse_argsrM   ÚfullrC   ÚpagesÚprintÚ	SITE_NAMErF   rG   r   ÚcursorÚranger.   ÚLIST_TEMPLATEÚformatr   r7   rH   Úfetchoner@   ÚgetÚDOMAINÚrowcountÚ	lastrowidr&   r,   r+   r   rJ   ÚlenÚtimeÚsleeprK   )r[   ÚparserÚargsÚpages_to_crawlÚmoderL   ÚcurÚ	new_totalÚ
skip_totalrT   Úlist_urlr0   r1   Úpage_newÚ	page_skipÚitemÚexistsÚdetailr;   r$   r5   Úrow_idÚplainr   Úall_oldÚds                             r   Úmainr€   s   sÝ  € ÛØ×$Ñ$Ó&€FØ
×Ñ˜¨¸MÐÔJØ
×Ñ˜	¬°Q¸^ÐÔLØ×ÑÓ€Dä„IØ$(§I¢I•[°4·:±:€NØ—y’y‰8¨°Ð/?¸tÐ&D€Dä	ˆE”)�˜E $  vÐ
.Ô/Ü	ˆMœ+˜Ð&6°~Ð6FÀcÐ
JÔKÜ	„Gä�?‰?œ9Ó%€DØ
�+‰+‹-€Cà€IØ€JÜ�a˜¨!Ñ+Ó,ó OˆÜœm×2Ñ2¸Ð2Ó=Ñ=ˆÜ˜Ó!ˆÙÜ�D˜˜b˜	  >Ð"2Ð2BÐCÔDØä Ó%ˆÙÜ�D˜˜b˜	  >Ð"2Ð2JÐKÔLØàˆØˆ	Øó /	ˆ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ùð[/	ðb 	�‰Œô 	��T˜"�I˜Q˜~Ð.¨f´S¸³Z°LÀÈHÈ:ÐU\Ð]fÐ\gÐghÐiÔjð ˆØò 	ˆDØ—‘˜¨Ó,ˆAÚ�Q˜,Ó&Ø�Ùð		ñ
 �t˜a’xÜÐ9Ô;Ùä�
‰
�3Žð_Oðb 	‡J�J„LÜ	Ð$ Y K¨{¸:¸,Ð
GÕHøô5 %ò Ùðûô ò Ýûðús7   È'?N
É'AM;Ë
N
Í;	NÎN
ÎNÎN
Î
	NÎNÚ__main__)Ú__doc__r&   ÚsysÚosrF   rm   Úurllib.requestr   Ússlrb   ri   r.   re   rC   Úgetenvr   Ú_create_unverified_contextr   r   r   r7   r@   rD   rM   r€   Ú__name__© r8   r   ú<module>r‹      s—   ðñ÷
 7× 6× 6Ó 6à$€	Ø	€Ø(€Ø?€Ø€àˆB�I‰I�kÐ#4Ó5€	Ø$€c×$Ñ$Ó&€àÐoð€òòò(&òPòò&fIðP ˆzÒÙ…Fð r8   