Ë
    ¸¬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mZm	Z	 ddl
mZ ddlZddlmZ dZdZdd	iZd
ZdZ e	ddd«      Zdadadadd„Zd„ Zd„ Zd„ Zdd„Zd„ Zedk(  r e«        yy)u|   
é•‡å®�åŽ¿äººæ°‘æ”¿åºœ - é€šçŸ¥å…¬å‘Š çˆ¬è™«
URL: https://www.gzzn.gov.cn/xw/tzgg/
CMS: TRS (createPageHTML 247é¡µ 3680æ�¡)
é    N)ÚdatetimeÚdate)Úurljoin)ÚBeautifulSoupz/root/search.dbz https://www.gzzn.gov.cn/xw/tzgg/z
User-AgentzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36u   é•‡å®�åŽ¿é€šçŸ¥å…¬å‘ŠÚtzggiç  é   é   c                 ót   — t        j                  | t        |¬«      }d|_        t	        |j
                  d«      S )N)ÚheadersÚtimeoutzutf-8úhtml.parser)ÚrequestsÚgetÚHEADERSÚencodingr   Útext)Úurlr   Úrs      ú$/root/gov_crawler/crawl_gzzn_tzgg.pyÚget_soupr      s,   € Ü�‰�S¤'°7Ô;€AØ€A„JÜ˜Ÿ™ Ó/Ð/ó    c                 ó    — | j                  «       j                  dd«      } 	 t        j                  | d d d«      j	                  «       S #  Y y xY w)Nú.ú-é
   ú%Y-%m-%d)ÚstripÚreplacer   Ústrptimer   )Úss    r   Ú
parse_dater!      sK   € Ø	�‰‹	×Ñ˜#˜sÓ#€AðÜ× Ñ   3 B ¨Ó4×9Ñ9Ó;Ð;øðÙús   ¢&A	 Á	Ac                 ó6   — t        | j                  d«      «      S )Nz%Y%m%d)ÚintÚstrftime)Úds    r   Ú	date_rankr&   &   s   € Üˆq�z‰z˜(Ó#Ó$Ð$r   c                 ó"  — 	 t        | d¬«      }|j                  d«      }|r|j	                  d¬«      nd}d }|j                  ddd	i¬
«      xs |j                  dddi¬
«      }|r|j                  d«      rt        |d   «      }|j                  dd¬«      }|s|j                  dd¬«      }|s|j                  dd¬«      }|s|j                  dd¬«      }|rt        |«      nd}|||d fS # t        $ r}d d d t        |«      fcY d }~S d }~ww xY w)Né   ©r   ÚtitleT©r   Ú ÚmetaÚnameÚPubDate)ÚattrsÚpubdateÚcontentÚdivÚTRS_UEDITOR)Úclass_Útrs_editor_viewÚviewÚContent)r   Ú	ExceptionÚstrÚfindÚget_textr   r!   )	r   ÚsoupÚer*   Ú
title_textr1   r-   Úcontent_divÚcontent_htmls	            r   Úfetch_detailrB   )   s  € ð(Ü˜ RÔ(ˆð �I‰I�gÓ€EÙ/4�—‘ d�Ô+¸"€Jà€GØ�9‰9�V F¨IÐ#6ˆ9Ó7Òg¸4¿9¹9ÀVÐTZÐ\eÐSf¸9Ó;g€DÙ�—‘˜Ô#Ü˜T )™_Ó-ˆà—)‘)˜E¨-�)Ó8€KÙØ—i‘i Ð.?�iÓ@ˆÙØ—i‘i ¨f�iÓ5ˆÙØ—i‘i ¨i�iÓ8ˆá'2”3�{Ô#¸€LØ�w ¨dÐ2Ð2øô) ò (Ø�T˜4¤ Q£Ð'Õ'ûð(ús   ‚C, Ã,	DÃ5D	ÄDÄ	Dc                 ó&  — t        |«      D ]'  }	 | j                  d|«       | j                  dkD  r y y dd	|z  fS # t        j                  $ r@}dt        |«      v rt        j                  d«       Y d}~Œkdt        |«      fcY d}~c S d}~ww xY w)
u   å¸¦é‡�è¯•çš„INSERTzßINSERT OR IGNORE INTO gov_raw 
                (site_name, title, page_url, source_url, publish_date, date_rank, summary, status, category, content, visits, tags)
                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, '')r   )TN)FNÚlockedé   NFzDB locked after %d retries)ÚrangeÚexecuteÚrowcountÚsqlite3ÚOperationalErrorr:   ÚtimeÚsleep)ÚcÚconnÚvaluesÚmax_retriesÚattemptr>   s         r   Úsafe_insertrR   B   s—   € ä˜Ó%ò !ˆð	!Ø�I‰Ið @àAGôIð �z‰z˜AŠ~Ù!Ùð!ð Ð.°Ñ<Ð<Ð<øô ×'Ñ'ò 	!Øœ3˜q›6Ñ!Ü—
‘
˜1”ÜØœ#˜a›&�=× ûð		!ús!   �!=½BÁ"BÁ7BÂBÂBc                  ó*  — t        j                  t        d¬«      } | j                  «       }t	        t
        «      }d}|j                  d«      D ]\  }|j                  sŒd|j                  v sŒt        j                  d|j                  «      }|sŒBt        |j                  d«      «      } n t        dt        |dz   fz  «       t        |dz   «      D �]¦  }|dk(  rt
        n
d	t
        |fz  }	 t	        |d
¬«      }|j#                  d«      }	|	sŒ<|	D �]  }
|
j%                  d«      }|
j%                  d«      }|r|sŒ+|j'                  dd«      j)                  «       }|j'                  dd«      xs |j+                  d¬«      }|j+                  d¬«      }t-        |«      }|sŒ‘|j/                  d«      st1        t
        |«      n|}|r|t2        k  r
t4        dz  aŒÉ|j7                  d|f«       |j9                  «       r
t4        dz  aŒöt;        |«      \  }}}}|rt         dz  at        d|d d ›d|›�«       �Œ'|xs |}|xs |}|st4        dz  a�Œ@|rt=        |j)                  «       «      dk  rt4        dz  a�Œi|j?                  d«      }tA        |«      }tC        |d«      j+                  d¬«      d d }t        ||||||dtD        |f
}tG        || |«      \  }}|r*tH        dz  a$tH        dk  s�ŒÞt        d|d d ›d|›�«       �Œô|s�Œøt         dz  at        d |z  «       �Œ |d
z  dk(  r:|dkD  r5| jK                  «        t        d!|dz   |dz   tH        t4        t         fz  «       tM        jN                  d"«       �Œ© | jK                  «        | jQ                  «        t        d#t        z  «       t        d$tH        z  «       t        d%t4        z  «       t        d&t         z  «       y # t        $ r$}t         dz  at        d||fz  «       Y d }~�Œ;d }~ww xY w)'Né<   r)   r   ÚscriptÚcreatePageHTMLzcreatePageHTML\((\d+)rE   u   [%s] å…± %d é¡µz%sindex_%d.htmlr(   u     [ERR] ç¬¬%dé¡µ: %szul.NewsList > liÚaÚspanÚhrefr,   r*   Tr+   Úhttpz)SELECT id FROM gov_raw WHERE page_url = ?z  [ERR] z: é2   r   r   éÈ   Ú	publishedé   z  + z | u     [ERR] å…¥åº“: %su)     ... %d/%dé¡µ æ–°å¢ž%d è·³è¿‡%d é”™è¯¯%dg333333Ó?u   
===== %s å®Œæˆ� =====u
   æ–°å¢ž: %du
   è·³è¿‡: %du
   é”™è¯¯: %d))rI   ÚconnectÚDB_PATHÚcursorr   ÚBASEÚfind_allÚstringÚreÚsearchr#   ÚgroupÚprintÚ	SITE_NAMErF   r9   Ú	COUNT_ERRÚselectr;   r   r   r<   r!   Ú
startswithr   Ú	THRESHOLDÚ
COUNT_SKIPrG   ÚfetchonerB   Úlenr$   r&   r   ÚCATEGORYrR   Ú	COUNT_NEWÚcommitrK   rL   Úclose)rN   rM   r=   Útotal_pagesr    ÚmÚpager   r>   ÚitemsÚlirW   rX   rY   r*   Údate_strÚ	item_dateÚ	det_titleÚdet_daterA   ÚerrÚfinal_titleÚ
final_dateÚdate_str_finalÚdrÚsummaryrO   Úoks                               r   Úmainr…   S   sÉ  € ô �?‰?œ7¨BÔ/€DØ�‰‹€Aä”D‹>€DØ€KØ�]‰]˜8Ó$ò ˆØ�8‹8Ð(¨A¯H©HÒ4Ü—	‘	Ð2°A·H±HÓ=ˆAÚÜ! !§'¡'¨!£*›o�Ùðô 
Ð
œy¨+¸©/Ð:Ñ
:Ô;ä�k A‘oÓ&ó IˆØ˜a’i�dÐ%6¼$À¸Ñ%Eˆð	Ü˜C¨Ô,ˆDð —‘Ð.Ó/ˆÙØàó 5	0ˆBØ—‘˜“ˆAØ—7‘7˜6“?ˆDÙ™DØà—5‘5˜ Ó$×*Ñ*Ó,ˆDØ—E‘E˜' 2Ó&Ò@¨!¯*©*¸4¨*Ó*@ˆEØ—}‘}¨4�}Ó0ˆHÜ" 8Ó,ˆIáØØ.2¯o©o¸fÔ.E”7œ4 Ô&È4ˆDá˜Y¬Ò2Ü˜a‘�
Øà�I‰IÐAÀDÀ7ÔKØ�z‰zŒ|Ü˜a‘�
Øä5AÀ$Ó5GÑ2ˆI�x ¨sÙÜ˜Q‘�	Ý¨$¨s°ª)±SÐ9Ô:Ùà#Ò, uˆKØ!Ò. YˆJáÜ˜a‘�
Ùá¤3 |×'9Ñ'9Ó';Ó#<¸rÒ#AÜ˜a‘�
Ùà'×0Ñ0°Ó<ˆNÜ˜:Ó&ˆBÜ# L°-Ó@×IÑIÐPTÐIÓUÐVZÐWZÐ[ˆGä ¨d°D¸.È"ÈgÐWbÔdlÐnzÐ{ˆFÜ  4¨Ó0‰EˆB�ÙÜ˜Q‘�	Ü ”>Ý¨;°s¸Ò+;¹^ÐLÖMÛÜ˜Q‘�	ÜÐ*¨QÑ.Ö/ðk5	0ðn �"‰9˜Š>˜d QšhØ�K‰KŒMÜÐ=ÀÈÁÈ;ÐYZÉ?Ô\eÔgqÔs|Ð@}Ñ}Ô~ä�
‰
�3ŽðSIðV 	‡K�K„MØ‡J�J„Lä	Ð
#¤iÑ
/Ô0Ü	ˆ,œÑ
"Ô#Ü	ˆ,œÑ
#Ô$Ü	ˆ,œÑ
"Õ#øôY ò 	Ü˜‰NˆIÜÐ(¨D°!¨9Ñ4Ô5Ýûð	ús   Ã-O%Ï%	PÏ.PÐPÚ__main__)r(   )r   )Ú__doc__ÚosÚsysre   ÚjsonrK   ÚhashlibrI   r   r   Úurllib.parser   r   Úbs4r   r`   rb   r   ri   rq   rm   rr   rn   rj   r   r!   r&   rB   rR   r…   Ú__name__© r   r   ú<module>r�      s›   ðñ÷
 1× 0× 0Ó 0ß #Ý  Û Ý à
€Ø)€àð  Dð€ð $€	Ø€Ù��q˜"Ó€	à€	Ø€
Ø€	ó0ò
ò%ò3ó2=ò"b$ðH ˆzÒÙ…Fð r   