Ë
    ¸¬uj  ã                   óž   — d Z ddlZddlZddlZddlZddlZ ej                  dd«      ZdZdZ	e	› d�Z
dd	iZd
„ Zdd„Zd„ Zedk(  r e«        yy)uu   ç¦�å»ºä¸‰é’¢é›†å›¢-çŽ¯å¢ƒä¿¡æ�¯å…¬å¼€ çˆ¬è™«
æ•°æ�®æ�¥æº�ï¼šwww.fjsg.com.cn åˆ—è¡¨é¡µJSONå†…åµŒï¼ˆå�«å®Œæ•´æ­£æ–‡ï¼‰
é    NÚ	SEARCH_DBz/root/search.dbu%   ç¦�å»ºä¸‰é’¢é›†å›¢-çŽ¯å¢ƒä¿¡æ�¯å…¬å¼€zhttps://www.fjsg.com.cnz/sgweb/lists?topicId=116z
User-AgentzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36c                 ó    — t        j                  d| t         j                  «      }|r&|j                  d«      }t	        j
                  |«      S g S )u+   ä»ŽHTMLä¸­æ��å�– var cl = [...] JSON æ•°æ�®zvar cl = (\[.*?\])\s*;?\s*\né   )ÚreÚsearchÚDOTALLÚgroupÚjsonÚloads)ÚhtmlÚmÚraw_jsons      ú/root/gov_crawler/crawl_fjsg.pyÚextract_json_datar      s=   € ä
�	‰	Ð1°4¼¿¹ÓC€AÙØ—7‘7˜1“:ˆä�z‰z˜(Ó#Ð#Ø€Ió    c                 óF  — | dk(  rt         n
t         › d| › �}	 t        j                  |t        d¬«      }d|_        d}t        j                  d
|j                  «      }|rt        |j                  d«      «      }t        |j                  «      }g }|D ]_  }|j                  dd«      }	|j                  dd«      }
|j                  dd«      }|j                  dd«      }|j                  |	|
||f«       Œa ||fS # t
        $ r}t        d| › d|› �«       g dfcY d	}~S d	}~ww xY w)uQ   èŽ·å�–å¹¶è§£æž�å�•é¡µæ•°æ�®ï¼Œè¿”å›ž [(cont_id, title, content, issue_date), ...]r   z&page=é   )ÚheadersÚtimeoutzutf-8u	     â�Œ ç¬¬u   é¡µè¯·æ±‚å¤±è´¥: r   Nzvar tt = (\d+)Úcont_idÚ ÚtitleÚcontentÚ
issue_date)ÚLIST_URLÚrequestsÚgetÚHEADERSÚencodingÚ	ExceptionÚprintr   r   ÚtextÚintr	   r   Úappend)ÚpageÚurlÚrespÚeÚttr   ÚitemsÚresultsÚitemr   r   r   r   s                r   Ú
parse_pager-      s  € à˜a’i�(¬ z°¸°vÐ%>€CðÜ�|‰|˜C¬¸"Ô=ˆØˆŒð 
€BÜ
�	‰	Ð# T§Y¡YÓ/€AÙÜ�—‘˜“‹_ˆä˜dŸi™iÓ(€EØ€GØò >ˆØ—(‘(˜9 bÓ)ˆØ—‘˜ "Ó%ˆØ—(‘(˜9 bÓ)ˆØ—X‘X˜l¨BÓ/ˆ
Ø�‰˜ ¨°Ð<Õ=ð>ð �Bˆ;Ðøô' ò Ü�	˜$˜Ð0°°Ð4Ô5Ø�1ˆu�ûðús   ˜#C8 Ã8	D ÄDÄD ÄD c                  óŠ  — d } 	 dd l }|j                  t        «      } | j                  «       }|j	                  d«       t        d«      \  }}|dk(  r t        d«       	 | r| j                  «        y y d}||z   dz
  |z  }t        d|› d|› �«       i }t        «       }t        d|dz   «      D ]y  }	|	dkD  rt        |	«      n||f\  }
}|
D ]1  \  }}}}||v rŒ|j                  |«       t        › d|› �}||||f||<   Œ3 t        d	|	› d
t        |
«      › dt        |«      › d|› d�	«       Œ{ t        dt        |«      › d�«       d}d}t        |j                  «       d¬«      }|D ]Â  }||   \  }}}}|j	                  d|f«       |j                  «       r|dz  }Œ6d}|r)t!        j"                  d|«      }|r|j%                  d«      }	 |j	                  d|||t&        |f«       | j)                  «        |dz  }|rt        |«      nd}|dk  rdnd}t        d|d d › d|› d|› �«       ŒÄ t        d|› d|› �«       |j	                  d t&        f«       |j                  «       d   }t        d!|› d"�«       | r| j                  «        y y # t*        $ r}t        d|d d › d|› �«       Y d }~�ŒFd }~ww xY w# | r| j                  «        w w xY w)#Nr   zðCREATE TABLE IF NOT EXISTS gov_raw (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            title TEXT,
            content TEXT,
            source_url TEXT UNIQUE,
            site_name TEXT,
            publish_date TEXT
        )r   u   â�Œ æ— æ³•èŽ·å�–æ€»æ�¡æ•°é	   u   æ€»æ�¡æ•°: u   , æ€»é¡µæ•°: z/sgweb/detail?contId=u   ç¬¬u   é¡µ: u   æ�¡ (ç´¯ç§¯ ú/ú)u   
å…±èŽ·å�– u    æ�¡åˆ—è¡¨é¡¹T)Úreversez+SELECT id FROM gov_raw WHERE source_url = ?r   z(\d{4}-\d{2}-\d{2})zjINSERT OR IGNORE INTO gov_raw (title, content, source_url, site_name, publish_date) VALUES (?, ?, ?, ?, ?)éÈ   u    âš ï¸� å†…å®¹è¿‡çŸ­u     âœ… é(   z... (u     â�Œ å…¥åº“å¤±è´¥ r   z: u   
çˆ¬å�–å®Œæˆ�ï¼�æ–°å¢ž: u   , è·³è¿‡(å·²å­˜åœ¨): z0SELECT COUNT(*) FROM gov_raw WHERE site_name = ?u     å…± u    æ�¡)Úsqlite3Úconnectr   ÚcursorÚexecuter-   r!   ÚcloseÚsetÚrangeÚaddÚBASE_URLÚlenÚsortedÚkeysÚfetchoner   Úmatchr	   Ú	SITE_NAMEÚcommitr    )Úconnr5   ÚcÚfirst_itemsÚtotal_itemsÚ	page_sizeÚtotal_pagesÚ	all_itemsÚseen_idsr%   r*   Ú_r   r   r   r   Ú
detail_urlÚ	total_newÚ
total_skipÚ
sorted_idsÚissue_date_strÚpublish_dater   Úcontent_lenÚstatusr(   Útotals                              r   ÚcrawlrW   ;   s0  € Ø€DðPÛØ�‰œyÓ)ˆØ�K‰K‹MˆØ	�	‰	ð ô 	ô $.¨a£=Ñ ˆ�[Ø˜!ÒÜÐ-Ô.Øñ| Ø�J‰J�Lð ðy ˆ	Ø" YÑ.°Ñ2°yÑ@ˆÜ�˜K˜=¨°k°]ÐCÔDð ˆ	Ü“5ˆä˜!˜[¨1™_Ó-ò 	\ˆDØ+/°!ª8”z $Ô'¸+À{Ð9S‰HˆE�1Ø7<ò NÑ3�˜ ¨Ø˜hÑ&ØØ—‘˜WÔ%Ü (˜zÐ)>¸w¸iÐH�
Ø&+¨W°jÀ*Ð%M�	˜'Ò"ðNô �C˜�v˜U¤3 u£: ,¨l¼3¸y»>Ð:JÈ!ÈKÈ=ÐXYÐZÕ[ð	\ô 	�œS ›^Ð,¨MÐ:Ô;ð ˆ	Øˆ
Ü˜IŸN™NÓ,°dÔ;ˆ
à!ò 	?ˆGØ9BÀ7Ñ9KÑ6ˆE�7˜N¨Jð �I‰IÐCÀjÀ]ÔSØ�z‰zŒ|Ø˜a‘�
Øð ˆLÙÜ—H‘HÐ3°^ÓD�ÙØ#$§7¡7¨1£:�Lð?Ø—	‘	ð AØ˜G Z´¸LÐIôð —‘”Ø˜Q‘�	Ù.5œc 'œl¸1�Ø3>ÀÒ3DÑ/È"�Ü˜˜u S b˜z˜l¨%°¨~¸Q¸v¸hÐGÕHð3	?ô: 	Ð)¨)¨Ð4IÈ*ÈÐVÔWØ	�	‰	ÐDÄyÀlÔSØ—
‘
“˜Q‘ˆÜ��u�g˜TÐ"Ô#ñ Ø�J‰J�Lð øô ò ?ÜÐ+¨E°#°2¨J¨<°r¸!¸Ð=×>Ò>ûð?ûñ Ø�J‰J�Lð ús?   „AJ- Á1EJ- ÇAJÈ"AJ- Ê	J*ÊJ%ÊJ- Ê%J*Ê*J- Ê-KÚ__main__)r   )Ú__doc__r
   r   ÚosÚsysr   Úgetenvr   rC   r=   r   r   r   r-   rW   Ú__name__© r   r   ú<module>r_      s|   ðñó Û 	Û 	Û 
Û àˆB�I‰I�kÐ#4Ó5€	Ø3€	Ø$€ØˆZÐ/Ð0€ð ð  Dð€ò
óò8Rðj ˆzÒÙ	…Gð r   