Ë
    ¸¬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mZ ddl	m
Z
 dZdZdZdZd	Zd
dddœZdd„Zd„ Zd„ Zedk(  r e«        yy)uÓ   
æ™‹æ±Ÿå¸‚äººæ°‘æ”¿åºœ - åŸŽå¸‚ç®¡ç�†å±€ä¿¡æ�¯å…¬å¼€ çˆ¬è™«
URL: https://www.jinjiang.gov.cn/xxgk/zfxxgkzl/bmzfxxgk/csglj/zfxxgkml/
API: POST https://www.jinjiang.gov.cn/ssp/search/api/v2/external
CHNLID: 38251
é    N)ÚBeautifulSoup)ÚurljoinzBhttps://www.jinjiang.gov.cn/xxgk/zfxxgkzl/bmzfxxgk/csglj/zfxxgkml/z6https://www.jinjiang.gov.cn/ssp/search/api/v2/externalu,   jinjiang.gov.cn-åŸŽå¸‚ç®¡ç�†å±€-ä¿¡æ�¯å…¬å¼€Ú38251z/root/temp_search.dbz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36zapplication/jsonzhttps://www.jinjiang.gov.cn/)z
User-AgentzContent-TypeÚRefererc                 óJ  — dd|dddddd|d	d
igdt         gigg dœdœ}| j                  t        |d¬«      }|j                  dk7  rg dfS |j	                  «       }|j                  d«      sg dfS |d   j                  dg «      }t        |d   j                  dd«      «      }||fS )NÚ 000000008fd72c27018fdd69fb8b0002Ú	WCMDOCAPIÚ Úallz docorderpri desc,docreltime descÚsmartÚpublishyearÚYÚeqé
   Úin)Ú	docstatusÚchnlidr   )ÚsiteIdÚapiNameÚpageSizeÚrelevanceFieldÚrelevanceTypeÚ	sortFieldÚ	matchModeÚaggregateFieldÚ
isCollapseÚpageÚfilteré   )ÚjsonÚtimeoutéÈ   r   ÚdataÚresultÚtotal)ÚCHNLIDÚpostÚAPI_URLÚstatus_coder    ÚgetÚint)Úsessionr   Ú	page_sizeÚpayloadÚrespr#   r$   r%   s           ú)/root/gov_crawler/crawl_jinjiang_csglj.pyÚfetch_list_pager1      sÍ   € à4ØØØØØ7ØØ'ØØà ˜*˜Øœv˜hÐ'Ð(Øñ
ñ€Gð" �<‰<œ g°rˆ<Ó:€DØ×Ñ˜3ÒØ�1ˆuˆØ�9‰9‹;€DØ�8‰8�FÔØ�1ˆuˆØ�&‰\×Ñ˜h¨Ó+€FÜ��V‘× Ñ  ¨!Ó,Ó-€EØ�5ˆ=Ðó    c                 óà  — 	 |j                  | d¬«      }|j                  dk7  ryt        |j                  d«      }|j	                  d«      }|rt        |«      nd}|j                  dd	d
i¬«      }|r$|j                  d«      r|d   j                  «       nd }|j                  dd	di¬«      }|r$|j                  d«      r|d   j                  «       nd }	|||	fS # t        $ r
}
Y d }
~
yd }
~
ww xY w)Nr   )r!   r"   )r
   NNzhtml.parserzdiv.TRS_Editorr
   ÚmetaÚnameÚArticleTitle)ÚattrsÚcontentÚPubDate)	r*   r)   r   ÚtextÚ
select_oneÚstrÚfindÚstripÚ	Exception)Úurlr,   r/   ÚsoupÚcontent_divr8   Ú
meta_titleÚtitleÚ	meta_dateÚdateÚes              r0   Úfetch_detailrH   5   së   € ðØ�{‰{˜3¨ˆ{Ó+ˆØ×Ñ˜sÒ"Ø!Ü˜TŸY™Y¨Ó6ˆØ—o‘oÐ&6Ó7ˆÙ&1”#�kÔ"°rˆØ—Y‘Y˜v¨f°nÐ-E�YÓFˆ
Ù1;À
ÇÁÈyÔ@Y�
˜9Ñ%×+Ñ+Ô-Ð_cˆØ—I‘I˜f¨V°YÐ,?�IÓ@ˆ	Ù/8¸Y¿]¹]È9Ô=Uˆy˜Ñ#×)Ñ)Ô+Ð[_ˆØ˜˜tÐ#Ð#øÜò Üûðús   ‚"C ¥B4C Ã	C-Ã(C-c                  óò  — t        d«       t        j                  «       } | j                  j	                  t
        «       t        d«       t        | dd«      \  }}|st        d«       y t        d|› �«       |}t        dt        |«      › d�«       |d	z   dz  }t        d
|dz   «      D ]W  }t        | |d«      \  }}|s nC|j                  |«       t        d|› dt        |«      › d�«       t        j                  d«       ŒY t        dt        |«      › d�«       t        d«       t        j                  t        «      }|j                  «       }	|	j!                  d«       d}
d}t#        |«      D �]‰  \  }}|j%                  dd«      }t'        |j%                  dd«      «      dz  }|dkD  r.t(        j(                  j+                  |«      j-                  d«      nd}|j%                  dd«      }|sŒ�t        d|dz   › dt        |«      › d|› d|d d › d�	d¬«       t.        j0                  j3                  «        t5        || «      \  }}}|rt        |j7                  «       «      dk  r2|xs d}t        d t        |j7                  «       «      › d!�«       |dz  }n&t        d"t        |j7                  «       «      › d!�«       |xs |}|xs |}	 |	j!                  d#|||t8        |f«       |	j:                  dkD  r|
dz  }
�ŒŒ |j?                  «        |jA                  «        t        d$d%› �«       t        d&|
› d'�«       t        d(t        |«      |z
  › d)|› d�«       t        d%› «       y # t<        $ r}Y d }~�Œd }~ww xY w)*Nu9   ===== æ™‹æ±Ÿå¸‚-åŸŽå¸‚ç®¡ç�†å±€-ä¿¡æ�¯å…¬å¼€ çˆ¬è™« =====u   
--- ç¬¬1æ­¥: èŽ·å�–åˆ—è¡¨ ---é   éd   u   APIæ— æ•°æ�®u   æ€»è®°å½•: u     [OK] ç¬¬1é¡µ: u    æ�¡éc   é   u
     [OK] ç¬¬u   é¡µ: g333333Ó?u   å…±èŽ·å�–: u   
--- ç¬¬2æ­¥: èŽ·å�–è¯¦æƒ… ---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,
        crawl_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )r   Údoctitler
   Ú
docreltimeiè  z%Y-%m-%dÚ	docpuburlz  [ú/z] ú é(   z...)Úendr"   zSHORT(ú)zOK(zjINSERT OR IGNORE INTO gov_raw (title, content, source_url, site_name, publish_date) VALUES (?, ?, ?, ?, ?)ú
z2==================================================u   å®Œæˆ�ï¼�æ€»è®¡: u
    æ�¡å…¥åº“u   æœ‰å†…å®¹: u    æ�¡, SHORT: )!ÚprintÚrequestsÚSessionÚheadersÚupdateÚHEADERSr1   ÚlenÚrangeÚextendÚtimeÚsleepÚsqlite3ÚconnectÚ	SEARCH_DBÚcursorÚexecuteÚ	enumerater*   r+   ÚdatetimeÚfromtimestampÚstrftimeÚsysÚstdoutÚflushrH   r>   Ú	SITE_NAMEÚrowcountr?   ÚcommitÚclose)r,   Úpage1r%   Úall_resultsÚtotal_pagesÚpÚresultsÚ_ÚconnÚcÚinsertedÚshort_countÚidxÚitemrD   ÚtsrF   Ú
detail_urlr8   Ú	det_titleÚdet_dateÚfinal_titleÚ
final_daterG   s                           r0   Úmainr„   E   sO  € Ü	ÐEÔGÜ×ÑÓ €GØ‡O�O×Ñœ7Ô#ô 
Ð
+Ô,Ü" 7¨A¨sÓ3�L€Eˆ5ÙÜˆnÔØÜ	ˆK˜�wÐ
Ô à€KÜ	ÐœS ›Z˜L¨Ð
-Ô.Ø˜2‘: #Ñ%€KÜ�1�k A‘oÓ&ò ˆÜ$ W¨a°Ó5‰
ˆ�ÙÙØ×Ñ˜7Ô#Ü�
˜1˜#˜U¤3 w£< .°Ð5Ô6Ü�
‰
�3�ðô 
ˆKœ˜KÓ(Ð)¨Ð
.Ô/ô 
Ð+Ô-Ü�?‰?œ9Ó%€DØ�‰‹€AØ‡I�Ið 	ô 
ð €HØ€KÜ˜{Ó+ó ‰	ˆˆTØ—‘˜ RÓ(ˆÜ�—‘˜,¨Ó*Ó+¨dÑ2ˆØKMÐPQÊ6Œx× Ñ ×.Ñ.¨rÓ2×;Ñ;¸JÔGÐWYˆØ—X‘X˜k¨2Ó.ˆ
ÙØä��C˜‘E�7˜!œC Ó,Ð-¨R°¨v°Q°u¸S¸b°z°lÀ#ÐFÈCÕPÜ�
‰
×ÑÔä'3°JÀÓ'HÑ$ˆ�˜HÙœ#˜gŸm™m›oÓ.°Ò4Ø’m ˆGÜ�Fœ3˜wŸ}™}›Ó/Ð0°Ð2Ô3Ø˜1Ñ‰Kä�Cœ˜GŸM™M›OÓ,Ð-¨QÐ/Ô0àÒ( 5ˆØÒ% ˆ
ð	Ø�I‰Ið  CØ" G¨Z¼ÀJÐOôQà�z‰z˜AŠ~Ø˜A‘�ùð5ð< 	‡K�K„MØ‡J�J„LÜ	ˆBˆvˆhˆ-ÔÜ	Ð˜h˜Z zÐ
2Ô3Ü	ˆKœ˜KÓ(¨Ñ4Ð5°]À;À-ÈtÐ
TÔUÜ	ˆVˆHÕøô ò 	Ýûð	ús   Ë/M"Í"	M6Í1M6Ú__main__)rK   )Ú__doc__rk   r    r`   rX   rb   rh   Úbs4r   Úurllib.parser   ÚBASE_URLr(   rn   r&   rd   r\   r1   rH   r„   Ú__name__© r2   r0   ú<module>rŒ      sl   ðñ÷ 4× 3× 3Ý Ý  àO€Ø
B€Ø:€	Ø	€Ø"€	ð QØ&Ø-ñ€óò8ò IðV ˆzÒÙ…Fð r2   