Ë
    ¸¬ujô  ã                   ót   — d Z ddlZddlZddlZddlmZ dZdZdZdZ	dZ
dd	„Zd
„ Zd„ Zd„ Zedk(  r e«        yy)u<   è°·åŸŽåŽ¿ç”Ÿæ€�çŽ¯å¢ƒå±€ - å›žåº”å…³åˆ‡(çŽ¯è¯„å…¬ç¤º) çˆ¬è™«é    N)Údatetimez/root/search.dbzChttp://www.hbgucheng.gov.cn/bmxz/bm/hbj/fdzdgk2/qtzdgknr/hygq_32016Úgucheng_hbjé   zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36c                 ó(  — t         j                  j                  | dt        i¬«      }	 t         j                  j	                  |d¬«      }|j                  «       j                  |d¬«      S # t        $ r}t        d| › d|› �d	¬
«       Y d }~y d }~ww xY w)Nz
User-Agent)Úheadersé   )ÚtimeoutÚreplace)Úerrorsu   è¯·æ±‚å¤±è´¥ z: T©Úflush)	ÚurllibÚrequestÚRequestÚUAÚurlopenÚreadÚdecodeÚ	ExceptionÚprint)ÚurlÚencodingÚreqÚrespÚes        ú"/root/gov_crawler/crawl_gucheng.pyÚfetchr      s„   € Ü
�.‰.×
 Ñ
  ¨|¼RÐ.@Ð
 Ó
A€CðÜ�~‰~×%Ñ% c°2Ð%Ó6ˆØ�y‰y‹{×!Ñ! (°9Ð!Ó=Ð=øÜò Ü�˜c˜U " Q CÐ(°Õ5Üûðús   ©AA+ Á+	BÁ4BÂBc                 ó�   — t        j                  d| t         j                  «      }|r|j                  d«      j	                  «       S y)u!   æ��å�– div#cbcontent å†…çš„æ­£æ–‡z-<div id="cbcontent"[^>]*>(.*?)</div>\s*</div>é   Ú )ÚreÚsearchÚSÚgroupÚstrip)ÚhtmlÚms     r   Úextract_contentr(      s6   € ä
�	‰	ÐBÀDÌ"Ï$É$ÓO€AÙØ�w‰w�q‹z×ÑÓ!Ð!Øó    c                 óŠ   — | syt        j                  dd| «      }t        j                  dd|«      j                  «       }|d d S )Nr    ú<[^>]+>ú z\s+éÈ   )r!   Úsubr%   )Úhtml_contentÚtexts     r   Úextract_textr1      sA   € ÙØÜ�6‰6�*˜c <Ó0€DÜ�6‰6�&˜#˜tÓ$×*Ñ*Ó,€DØ��ˆ:Ðr)   c                  ó¬  — t        j                  «       } dd l}|j                  t        «      }|j                  «       }|j                  dt        f«       |j                  «       d   }|dkD  }|rdnt        }d}d}t        |«      D �]Ô  }	|	dk(  r
t        › d�}
nt        › d|	› d�}
t        d|	dz   › d|
› �d	¬
«       t        |
«      }|sŒCt        j                  d|t        j                   «      }|st        d|	dz   › d�d	¬
«       Œt        dt#        |«      › d�d	¬
«       |D �]  \  }}}}|j%                  «       xs% t        j&                  dd|«      j%                  «       }|sŒC|j%                  «       }|j)                  d«      r|}n"|j)                  d«      rd|› �}nt        › d|› �}|j                  d|t        f«       |j                  «       r|dz  }Œ·t        |«      }|sd}|d d }nt+        |«      }t-        |«      }	 |j                  dt        ||||xs |d d |ddf«       |j/                  «        |dz  }�Œ t        d|	dz   › d|› d|› d�d	¬
«       �Œ× |j7                  «        t        d|› d |› d!�d	¬
«       y # |j0                  $ r	 |dz  }Y �Œyt2        $ r1}t        d|d d › d|› �d	¬
«       |j5                  «        Y d }~�Œ­d }~ww xY w)"Nr   z.SELECT COUNT(*) FROM gov_raw WHERE site_name=?r   z/index.shtmlz/index_z.shtmlu   æ­£åœ¨çˆ¬å�–ç¬¬u   é¡µ: Tr   zQ<li>.*?<a href="([^"]+)"[^>]*title="([^"]*)"[^>]*>\s*(.*?)\s*<span>([^<]+)</span>u   ç¬¬u   é¡µæ— æ•°æ�®u   æœ¬é¡µu   æ�¡r+   r    Úhttpú/zhttp://www.hbgucheng.gov.cnz7SELECT id FROM gov_raw WHERE page_url=? AND site_name=?r-   zINSERT INTO gov_raw (site_name, page_url, title, publish_date, summary, content, category, source_url) VALUES (?,?,?,?,?,?,?,?)u   çŽ¯è¯„å…¬ç¤ºzOhttp://www.hbgucheng.gov.cn/bmxz/bm/hbj/fdzdgk2/qtzdgknr/hygq_32016/index.shtmlu   å…¥åº“å¤±è´¥ [r   z]: u   é¡µå®Œæˆ�ï¼Œæ–°å¢žç´¯è®¡u   æ�¡ï¼Œè·³è¿‡u>   
è°·åŸŽåŽ¿ç”Ÿæ€�çŽ¯å¢ƒå±€çŽ¯è¯„å…¬ç¤ºçˆ¬å�–å®Œæˆ�ï¼Œå…±æ–°å¢ž u    æ�¡ï¼Œè·³è¿‡ u    æ�¡)r   ÚnowÚsqlite3ÚconnectÚDB_PATHÚcursorÚexecuteÚ	SITE_NAMEÚfetchoneÚ	MAX_PAGESÚrangeÚBASE_URLr   r   r!   ÚfindallÚDOTALLÚlenr%   r.   Ú
startswithr(   r1   ÚcommitÚIntegrityErrorr   ÚrollbackÚclose)r5   r6   ÚconnÚcÚexistingÚincrementalÚ	max_pagesÚ	total_newÚ
total_skipÚpageÚlist_urlr&   ÚitemsÚhrefÚ
title_attrÚ	link_textÚpub_dateÚtitleÚ
detail_urlÚdetail_htmlÚcontentÚsummaryr   s                          r   Úcrawlr[   $   s   € Ü
�,‰,‹.€CÛØ�?‰?œ7Ó#€DØ�‰‹€Aà‡I�IÐ>ÄÀÔMØ�z‰z‹|˜A‰€HØ˜Q‘,€KÙ ‘¤i€IØ€IØ€Jä�iÓ ó >hˆØ�1Š9Ü"˜ <Ð0‰Hä"˜ 7¨4¨&°Ð7ˆHä�  Q¡˜x u¨X¨JÐ7¸tÕDÜ�X‹ˆÙØä—
‘
Ø`Ø”"—)‘)ó
ˆñ
 Ü�C˜˜Q™�x˜|Ð,°DÕ9Øä�”s˜5“z�l #Ð&¨dÕ3à5:ó &	 Ñ1ˆD�*˜i¨Ø×$Ñ$Ó&ÒS¬"¯&©&°¸RÀÓ*K×*QÑ*QÓ*SˆEÙØØ—~‘~Ó'ˆHà�‰˜vÔ&Ø!‘
Ø—‘ Ô%Ø:¸4¸&ÐA‘
ä (˜z¨¨4¨&Ð1�
à�I‰IÐOÐR\Ô^gÐQhÔiØ�z‰zŒ|Ø˜a‘�
Øä 
Ó+ˆKÙØ�Ø  ˜+‘ä)¨+Ó6�Ü& wÓ/�ð Ø—	‘	ð VÜ 
¨E°8¸WÒ=SÈÈdÈsÈÐU\Ð^lØfðhôð
 —‘”Ø˜Q‘’	ðC&	 ôP 	��D˜‘F�8Ð3°I°;¸lÈ:È,ÐVYÐZÐbf×gð}>hð@ 	‡J�J„LÜ	ÐKÈIÈ;ÐVdÐeoÐdpÐptÐ
uð  ~Bö  Cøð ×)Ñ)ò  Ø˜a‘“
Üò  Ü˜ u¨S¨b z l°#°a°SÐ9ÀÕFØ—‘—’ûð ús   È:JÊKÊKÊ"&KËKÚ__main__)zutf-8)Ú__doc__r!   Úurllib.requestr   Úsysr   r8   r?   r;   r=   r   r   r(   r1   r[   Ú__name__© r)   r   ú<module>rb      sU   ðá Bß Ó Ý à
€ØP€Ø€	Ø€	àv€óòòòNCð` ˆzÒÙ	…Gð r)   