Ë
    €Ûµj %  ã                   ó¢   — 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 d dlmZ dZ	dZ
dZdddd	œZdd
„Zd„ Zd„ Zd„ Zedk(  r e«        yy)é    N)ÚBeautifulSoup)Údatetimeu"   æ³‰å·žå¸‚äººæ°‘æ”¿åºœ-é€šçŸ¥å…¬å‘Šz2http://www.quanzhou.gov.cn/zfb/xxgk/zfxxgkzl/gggs/zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zzh-CN,zh;q=0.9,en;q=0.8)z
User-AgentÚAcceptzAccept-Languagec                 ó  — t        |«      D ]C  }	 t        j                  | t        d¬«      }d|_        |j
                  dk(  r|j                  c S ŒE y # t        $ r'}||dz
  k  rt        j                  d«       Y d }~Œrd }~ww xY w)Né   )ÚheadersÚtimeoutzutf-8éÈ   é   é   )
ÚrangeÚrequestsÚgetÚHEADERSÚencodingÚstatus_codeÚtextÚ	ExceptionÚtimeÚsleep)ÚurlÚretriesÚiÚrÚes        ú(/root/gov_crawler/crawl_quanzhou_gggs.pyÚfetchr      s{   € Ü�7‹^ò ˆð	Ü—‘˜S¬'¸2Ô>ˆAØ ˆAŒJØ�}‰} Ò#Ø—v‘v’ð $ð	ð øô ò 	Ø�7˜1‘9Š}Ü—
‘
˜1”ÿøð	ús   �=AÁ	BÁA>Á>Bc            	      ó2  — t        t        «      } | st        d«       g S | j                  d«      }|dk  rt        d«       g S | ||dz    }t	        j
                  d|«      }t	        j
                  d|«      }t	        j
                  d|«      }g }t        t        t        |«      t        |«      t        |«      «      «      D ]=  }|j                  ||   ||   j                  «       ||   j                  d	«      d
œ«       Œ? t        dt        |«      › d�«       |S )u#   ä»Žé¦–é¡µæ��å�–å†…åµŒçš„15æ�¡æ•°æ�®u   ERROR: æ— æ³•èŽ·å�–é¦–é¡µzterton.dynamicAndStaticDatar   u   ERROR: æœªæ‰¾åˆ°æ•°æ�®å�—iˆ  z"docreltime":\s*\'([^\']+)\'z"doctitle":\s*\'([^\']+)\'z"docpuburl":\s*\'([^\']+)\'ú./)ÚdateÚtitler   u   é¦–é¡µæ��å�–: õ    æ�¡)r   ÚBASE_URLÚprintÚfindÚreÚfindallr   ÚminÚlenÚappendÚstripÚlstrip)ÚhtmlÚstartÚblockÚdatesÚtitlesÚurlsÚitemsr   s           r   Ú
parse_listr4   #   s  € ä”‹?€DÙÜÐ)Ô*Øˆ	ð �I‰IÐ3Ó4€EØˆq‚yÜÐ)Ô*Øˆ	à��u˜T‘zÐ"€EÜ�J‰JÐ6¸Ó>€EÜ�Z‰ZÐ5°uÓ=€FÜ�:‰:Ð4°eÓ<€Dà€EÜ”3”s˜5“z¤3 v£;´°D³	Ó:Ó;ò ˆØ�‰Ø˜!‘HØ˜A‘Y—_‘_Ó&Ø˜‘7—>‘> $Ó'ñ
õ 	ðô 
ˆNœ3˜u›:˜, dÐ
+Ô,Ø€Ló    c                 óp  ‡#— t         | d   z   }t        |«      }|st        d|› �«       | d   | d   dg dœS t        |d«      }| d   }|j	                  dd	d
i¬«      }|r$|j                  d«      r|d   j                  «       }| d   }|j	                  dd	di¬«      }|r$|j                  d«      r|d   j                  «       }d}g }	|j	                  dd¬«      }
|
�r³g }|
j                  D �]�  }|j                  dk(  �rËg }|j                  D �]ƒ  }t        |t        «      r%|j                  «       }|sŒ'|j                  |«       Œ9|j                  dk(  r¼|j                  dd«      }|j                  d¬«      }|r€|r~|j                  d«      r|nt         |j                  d«      z   Š#|j                  d|› d‰#› d�«       t        j                   d|t        j"                  «      sŒÙ|	j                  |‰#dœ«       Œî|sŒñ|j                  |«       �Œ|j                  dv r)|j                  d¬«      }|s�Œ(|j                  |«       �Œ;|j                  dk(  r|j                  d«       �Œ]|j                  d¬«      }|s�Œs|j                  |«       �Œ† dj%                  |«      j                  «       }|s�ŒÌ|j                  |«       �Œß|j                  dk(  r@|j'                  dd ¬!«      D ](  }|j                  d¬«      }|sŒ|j                  |«       Œ* �Œ.|j                  d"k(  r×g }|j'                  d#«      D ]•  }g }|j'                  d$d%g«      D ]B  }|j                  d%k(  rd%nd$}|j                  d¬«      }|j                  d&|› d'|› d(|› d'�«       ŒD t)        d)„ |D «       «      sŒp|j                  d*dj%                  |«      z   d+z   «       Œ— |s�Œì|j                  d,dj%                  |«      z   d-z   «       �Œ|j                  d.k(  s�Œ%|j                  d/d«      }|s�Œ;|j                  d0d«      }|j                  d«      r|nt         |j                  d«      z   }|j                  d1|› d|› d�«       �Œ’ d2j%                  |«      }nC|j'                  d«      D ]  }|j                  d¬«      }|sŒ||d2z   z  }Œ! |j                  «       }|	s¶|j'                  dt        j*                  dt        j"                  «      ¬3«      D ]~  }|j                  dd«      }|j                  d¬«      xs d4}|j                  d«      r|nt         |j                  d«      z   Š#t)        ˆ#fd5„|	D «       «      rŒk|	j                  |‰#dœ«       Œ€ t        j,                  d6d7|«      j                  «       }|d8d9 }|r|d8d: nd} d;}!| r0	 t/        j0                  | d<«      }"t3        |"j5                  «       «      }!t        d=|d8d> › d?| › d@t7        |«      › dA�«       || ||t9        j:                  |	d ¬B«      |!|dCœS #  Y ŒDxY w)Du   è§£æž�è¯¦æƒ…é¡µr   u     ERROR: æ— æ³•èŽ·å�– r!   r    Ú )r!   r    ÚcontentÚattachmentszhtml.parserÚmetaÚnameÚArticleTitle)Úattrsr8   ÚPubDateÚdivÚ
TRS_Editor)Úclass_ÚpÚaÚhrefT)r+   Úhttpr   ú[z](ú)z"\.(doc|docx|pdf|xls|xlsx|rar|zip)$)r;   r   )ÚspanÚstrongÚemÚbÚbrú
F)Ú	recursiveÚtableÚtrÚtdÚthú<ú>z</c              3   ó    K  — | ]  }|–— Œ y ­w)N© )Ú.0Úcs     r   ú	<genexpr>zparse_detail.<locals>.<genexpr>’   s   è ø€ Ò, œ1Ñ,ùs   ‚z<tr>z</tr>z<table>z</table>ÚimgÚsrcÚaltz![z

)rD   u   é™„ä»¶c              3   ó.   •K  — | ]  }|d    ‰k(  –— Œ y­w)r   NrV   )rW   Úa2Úfulls     €r   rY   zparse_detail.<locals>.<genexpr>¬   s   øè ø€ Ò?¨R�r˜%‘y DÕ(Ñ?ùs   ƒz\s+ú Nr
   é
   r   z%Y-%m-%dz  OK: é   z... | z | content=rX   )Úensure_ascii)r!   r    r8   Úsummaryr9   Ú	date_rankÚ
source_url)ÚDETAIL_BASEr   r$   r   r%   r   r+   Úchildrenr;   Ú
isinstanceÚstrr*   Úget_textÚ
startswithr,   r&   ÚsearchÚIÚjoinÚfind_allÚanyÚcompileÚsubr   ÚstrptimeÚintÚ	timestampr)   ÚjsonÚdumps)$Úitemr   r-   Úsoupr!   Ú
meta_titler    Ú	meta_dater8   r9   ÚeditorÚblocksÚchildÚ
text_partsrX   ÚtrD   Útxtr   rB   ÚrowsrP   ÚcellsrQ   ÚtagÚctr[   r\   Úfull_srcrC   Úcleanrd   Údate_parsedre   Údtr_   s$                                      @r   Úparse_detailr‹   @   sð  ø€ ä
˜˜U™Ñ
#€CÜ�‹:€DÙÜÐ& s eÐ,Ô-à˜'‘]Ø˜‘LØØñ	
ð 	
ô ˜˜}Ó-€Dð �‰M€EØ—‘˜6¨&°.Ð)A�ÓB€JÙ�j—n‘n YÔ/Ø˜9Ñ%×+Ñ+Ó-ˆð �‰<€DØ—	‘	˜&¨°Ð(;�	Ó<€IÙ�Y—]‘] 9Ô-Ø˜Ñ#×)Ñ)Ó+ˆð €GØ€Kà�Y‰Y�u \ˆYÓ2€FÚØˆØ—_‘_ó 9	;ˆEØ�z‰z˜SÓ à�
ØŸ™ó 1�AÜ! !¤SÔ)ØŸG™G›I˜ÚØ&×-Ñ-¨aÕ0ØŸ™ 3šØ Ÿu™u V¨RÓ0˜ØŸj™j¨t˜jÓ4˜Ù¡CØ+/¯?©?¸6Ô+B¡4ÌÐW[×WbÑWbÐcgÓWhÑIh˜DØ&×-Ñ-°°#°°b¸¸¸aÐ.@ÔAä!Ÿy™yÐ)NÐPTÔVX×VZÑVZÕ[Ø +× 2Ñ 2¸CÈÑ3MÕ NÚ Ø&×-Ñ-¨cÖ2ØŸ™Ð#@Ñ@ØŸJ™J¨T˜JÓ2˜ÛØ&×-Ñ-¨aÖ0ØŸ™ 4šØ"×)Ñ)¨$Ö/àŸJ™J¨T˜JÓ2˜ÛØ&×-Ñ-¨aÖ0ð31ð4 —w‘w˜zÓ*×0Ñ0Ó2�ÛØ—M‘M $Ö'Ø—‘˜uÒ$àŸ™¨°u˜Ó=ò )�AØŸ
™
¨˜
Ó.�AÚØŸ™ aÕ(ò)ð —‘˜wÒ&à�ØŸ.™.¨Ó.ò G�BØ�EØ Ÿk™k¨4°¨,Ó7ò =˜Ø&(§g¡g°¢o™d¸4˜ØŸ[™[¨t˜[Ó4˜ØŸ™ q¨¨¨Q¨r¨d°"°S°E¸Ð%;Õ<ð=ô Ñ, eÔ,Õ,ØŸ™ F¨R¯W©W°U«^Ñ$;¸gÑ$EÕFðGó Ø—M‘M )¨b¯g©g°d«mÑ";¸jÑ"HÖIØ—‘˜uÔ$Ø—i‘i  rÓ*�ÛØŸ)™) E¨2Ó.�CØ&)§n¡n°VÔ&<™sÄ;ÐQT×Q[ÑQ[Ð\`ÓQaÑCa�HØ—M‘M B s e¨2¨h¨Z°qÐ"9Ö:ðs9	;ðv —+‘+˜fÓ%‰ð —‘˜sÓ#ò 	&ˆAØ—
‘
 �
Ó&ˆAÚØ˜1˜v™:Ñ%‘ð	&ð —-‘-“/ˆñ Ø—‘˜s¬¯©Ð4YÔ[]×[_Ñ[_Ó)`�Óaò 	?ˆAØ—5‘5˜ Ó$ˆDØ—*‘* 4�*Ó(Ò4¨HˆCØŸ?™?¨6Ô2‘4¼ÀtÇ{Á{ÐSWÓGXÑ9XˆDÜÓ?°;Ô?Õ?Ø×"Ñ"¨C¸Ñ#=Õ>ð	?ô �F‰F�6˜3 Ó(×.Ñ.Ó0€EØ�D�Sˆk€Gñ  $�$�s˜‘)¨€KØ€IÙð	Ü×"Ñ" ;°
Ó;ˆBÜ˜BŸL™L›NÓ+ˆIô 
ˆF�5˜˜"�:�,˜f [ M°¼SÀ»\¸NÈ!Ð
LÔMàØØØÜ—z‘z +¸EÔBØØñð øð		Ùús   ×/X1 Ø1X5c                  ó¢  — t        dt        › d�«       t        «       } | st        d«       y t        dt        | «      › d�«       t        j
                  j                  d«      rd}nd}dd l}|j                  |d	¬
«      }|j                  d«       |j                  «       }|j                  «        t        dt        › d�«       d}| D ]¹  }t        |«      }|j                  d|j                  dd«      |d   |j                  dd«      |j                  dd«      |j                  dd«      t        |j                  dd«      |j                  dd«      |j                  dd«      f	«       |dz  }t        j                  d«       Œ» |j                  «        t        d|› d�«       |j                  dt        f«       |j!                  «       d   }|j                  dt        f«       |j!                  «       d   }	|j#                  «        t        d|› d|	› �«       t        d «       t        t%        j&                  t        d!t(        d"d#œd$d%¬&«      «       y )'Nz=== u    çˆ¬è™« ===u   æ— æ•°æ�®ï¼Œé€€å‡ºu   å…± u
    æ�¡å¾…çˆ¬z/root/search.dbz/mnt/data/search.dbr   é<   )r	   zPRAGMA busy_timeout=60000u
   å·²æ¸…ç�† u
    æ—§æ•°æ�®zß
            INSERT OR REPLACE INTO gov_raw (page_url, title, publish_date, content, summary, site_name, attachments, date_rank, source_url, script_name) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'crawl_quanzhou_gggs.py')
        rf   r7   r!   r    r8   rd   r9   z[]re   r   g      ø?u   å…¥åº“ r"   z.SELECT COUNT(*) FROM gov_raw WHERE site_name=?z1SELECT COUNT(*) FROM gov_search WHERE site_name=?u   éªŒè¯�: gov_raw=z, gov_search=u   
é…�ç½®æ�¡ç›®:zcrawl_quanzhou_gggs.pyu   ç¦�å»º)r;   Úscriptr   ÚgroupFr   )rc   Úindent)r$   Ú	SITE_NAMEr4   r)   ÚosÚpathÚexistsÚsqlite3ÚconnectÚexecuteÚcursorÚcommitr‹   r   r   r   ÚfetchoneÚcloserw   rx   r#   )
r3   Údb_pathr•   ÚconnrX   Úcountry   ÚdetailÚ	raw_countÚsearch_counts
             r   Úmainr¢   È   s  € Ü	ˆD”�˜;Ð
'Ô(ä‹L€EÙÜÐ"Ô#Øä	ˆD”�U“�˜JÐ
'Ô(ô 
‡w�w‡~�~Ð'Ô(Ø#‰à'ˆãØ�?‰?˜7¨Bˆ?Ó/€DØ‡L�LÐ,Ô-Ø�‰‹€Að
 	‡K�K„MÜ	ˆJ”y�k Ð
,Ô-à€EØò ˆÜ˜dÓ#ˆà	�	‰	ð ð �J‰J�| RÓ(Ø�7‰OØ�J‰J�v˜rÓ"Ø�J‰J�y "Ó%Ø�J‰J�y "Ó%ÜØ�J‰J�} dÓ+Ø�J‰J�{ AÓ&Ø�J‰J�| RÓ(ð

ô	ð 	�‰
ˆÜ�
‰
�3�ð#ð& 	‡K�K„MÜ	ˆG�E�7˜$Ð
Ô ð ‡I�IÐ>ÄÀÔMØ—
‘
“˜Q‘€IØ‡I�IÐAÄIÀ<ÔPØ—:‘:“< ‘?€Là‡J�J„LÜ	Ð˜Y˜K }°\°NÐ
CÔDä	ˆOÔÜ	Œ$�*‰*ÜØ*ÜØñ	ð
  !ô%õ &r5   Ú__main__)é   )r’   r   r&   r   rw   ÚsysÚbs4r   r   r‘   r#   rg   r   r   r4   r‹   r¢   Ú__name__rV   r5   r   ú<module>r¨      sl   ðã 	ð÷ )× (× (Ý Ý à0€	Ø?€ØB€ð DØOØ0ñ€ó
òò:FòPA&ðF ˆzÒÙ…Fð r5   