Ë
    éS†jÕ  ã                   ó*  — 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	 ddl
mZ ddlmZ dZedz   ZdZd	Zd
Zd\  ZZdZdZej.                  j1                  dd«       ddlZej6                  j9                  dd«      Zej6                  j=                  e«      Zej@                  jC                  e«       ejD                  Z"ejF                  Z#ejH                  Z$ejJ                  Z%ejL                  Z&ejN                  Z'd„ Z(d„ Z)e*dk(  r e)«        yy)uì   wenshang å‰�5é¡µè¯¦æƒ…åŠ é€ŸæŠ“å�– â€” åˆ—è¡¨ç”¨ playwright(åŽŸè„šæœ¬), è¯¦æƒ…ç”¨ urllib ç›´æŠ“
ç”¨æ³•: python3 wenshang_detail_fast.py
è¯»åˆ—è¡¨(playwright 85æ�¡) â†’ è¯¦æƒ…(urllib, IP+Host) â†’ /tmp/wenshang_gggs.jsonl (æ–­ç‚¹ç»­ä¼ )
é    N)Údatetime)ÚBeautifulSoup)Úsync_playwrightzhttp://www.wenshang.gov.cnzO/col/col61746/index.html?vc_xxgkarea=1137083000433565XHA&number=A0002001&jh=263z27.221.53.71z/tmp/wenshang_gggs.jsonlé   )g333333Ó?g333333ã?é   zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36z/root/gov_crawlerÚcwgz(/root/gov_crawler/crawl_wenshang_gggs.pyc           	      óB  — | j                  t        dt        › �«      }t        j                  j                  |t        dddddœ¬«      }t        j                  j                  |d¬	«      5 }|j                  «       j                  d
d¬«      cddd«       S # 1 sw Y   yxY w)u%   urllib ç›´æŠ“è¯¦æƒ…é¡µ: IP + Host å¤´zhttp://zwww.wenshang.gov.cnz)text/html,application/xhtml+xml,*/*;q=0.8zzh-CN,zh;q=0.9Úclose)z
User-AgentÚHostÚAcceptzAccept-LanguageÚ
Connection)Úheadersé   )Útimeoutúutf-8Úignore)ÚerrorsN)
ÚreplaceÚBASEÚIPÚurllibÚrequestÚRequestÚUAÚurlopenÚreadÚdecode)ÚurlÚrealÚreqÚrs       úwenshang_detail_fast.pyÚfetch_detailr#   !   s‹   € à�;‰;”t˜w¤r d˜^Ó,€DÜ
�.‰.×
 Ñ
  ÜØ%Ø=Ø+Øñ0Ð
 ó €Cô 
�‰×	Ñ	 ¨RÐ	Ó	0ð 9°AØ�v‰v‹x�‰˜w¨xˆÓ8÷9÷ 9ò 9ús   Á*!BÂBc                  ó
  — t         } t        «       }t        j                  j	                  t
        «      r>t        t
        d¬«      D ]*  }	 |j                  t        j                  |«      d   «       Œ, t        dt        |«      › d�d¬«       g }t        «       5 }|j                  j                  ddd	d
t         › dt         › �g¬«      }|j#                  t$        ddddœ¬«      }|j'                  «       }	 |j)                  t*        dd¬«       d}t-        d«      D ]4  }	t/        j0                  d«       	 |j3                  «       }
d|
v rd|
v rd} nŒ6 |s"t        dd¬«       t5        j6                  d«       t        dd¬«       d}t-        d| dz   «      D ]Ë  }|j3                  «       }
t9        |
«      }|s|dz  }|dk\  r n¢d}|D �cg c]  }|d   |vsŒ|‘Œ }}|j;                  |«       t        d|› d t        |«      › d!t        |«      › d"t        |«      › �d¬«       	 |j=                  d#|dz   › d$�«       t/        j0                  t?        j@                  d%d&«      «       ŒÍ |jC                  «        d d d «       t        d't        |«      › d(�d¬«       t        t
        d)d¬«      }dx}}|D �cg c]  }|d   |vsŒ|‘Œ }}|D �]T  }	 tE        |d*   «      }
tM        |
«      }|d.   s;|dz  }|tJ        k\  rt        d/d¬«        �nt        d0|d   › d1|d2   d d3 › �d¬«       nd}|d   |d2   xs |d2   |d4   xs |d4   |d*   d5d6|d.   |d7   tO        jP                  «       jS                  d8«      d9œ	}|jU                  t        jV                  |d¬:«      d;z   «       |jY                  «        |j                  |d   «       |dz  }|d<z  dk(  rt        d=|› d>t        |«      › d$�d¬«       t/        j0                  t?        j@                  tZ        t\        «      «       �ŒW |jC                  «        t        d?|› d@t        |«      › dAt
        › �d¬«       y # t        $ r Y �Œw xY w# t        $ r Y �Œ]w xY w# t        $ r Y �Œ`w xY wc c}w # t        $ r Y �ŒYw xY w# 1 sw Y   �Œ$xY wc c}w # t        $ rU}t        d+|d   › d,tG        |«      jH                  › �d¬«       |dz  }|tJ        k\  rt        d-d¬«       Y d }~ ŒÞY d }~�Œ<d }~ww xY w)BNr   )ÚencodingÚidu   [*] å·²æœ‰ u    æ�¡, æ–­ç‚¹ç»­ä¼ T)Úflushz---disable-blink-features=AutomationControlledz--no-sandboxz.--host-resolver-rules=MAP www.wenshang.gov.cn z, MAP wenshang.gov.cn )ÚheadlessÚargszzh-CNi€  i8  )ÚwidthÚheight)Ú
user_agentÚlocaleÚviewporti0u  Údomcontentloaded)r   Ú
wait_untilFé   é   Úzfxxgk_itemu   å…±u   [X] åˆ—è¡¨æœªæ¸²æŸ“é   u   [âœ“] åˆ—è¡¨å·²æ¸²æŸ“r   é   z[list] pz: u    æ�¡(æ–°u
   ), ç´¯è®¡ z%funGoPage('/module/xxgk/search.jsp', ú)g      ð?gÍÌÌÌÌÌü?u   [*] åˆ—è¡¨å…± u    æ�¡, å¼€å§‹æŠ“è¯¦æƒ…Úar   u   [!] è¯¦æƒ… u    æŠ“å�–å¤±è´¥: u   [!] å¤±è´¥è¿‡å¤š, ä¸­æ­¢Úbodyu   [!] ç©ºæ­£æ–‡è¿‡å¤š, ä¸­æ­¢u   [warn] ç©ºæ­£æ–‡ ú Útitleé   ÚdateÚwenshangÚwenshang_gggsÚattachmentsz%Y-%m-%d %H:%M:%S)	r&   r:   r<   r   ÚsourceÚsiter8   r?   Ú
crawl_time)Úensure_asciiú
r   z
[detail] +u    æ�¡ (ç´¯è®¡ u   [âœ“] å®Œæˆ�: æœ¬æ¬¡æ–°å¢ž u    æ�¡, æ€»è®¡ u    æ�¡ -> )/Ú	MAX_PAGESÚsetÚosÚpathÚexistsÚOUTÚopenÚaddÚjsonÚloadsÚ	ExceptionÚprintÚlenr   ÚchromiumÚlaunchr   Únew_contextr   Únew_pageÚgotoÚLIST_URLÚrangeÚtimeÚsleepÚcontentÚsysÚexitÚ
parse_listÚextendÚevaluateÚrandomÚuniformr
   r#   ÚtypeÚ__name__ÚMAX_FAILÚparse_detailr   ÚnowÚstrftimeÚwriteÚdumpsr'   Ú	SLEEP_MINÚ	SLEEP_MAX)Ú	max_pagesÚdone_idsÚlineÚ	all_itemsÚpÚbrowserÚctxÚpageÚpassedÚiÚhtmlÚfailÚpnoÚitemsÚitÚ	new_itemsÚfÚokÚeÚdetÚrecs                        r"   Úmainr‚   .   s	  € Ü€IÜ‹u€HÜ	‡w�w‡~�~”cÔÜœ wÔ/ò 	ˆDðØ—‘œTŸZ™Z¨Ó-¨dÑ3Õ4ð	ô
 
ˆKœ˜H›�Ð&8Ð
9ÀÕFð €IÜ	Ó	ð ,˜aØ—*‘*×#Ñ#¨TØ;¸^Ø<¼R¸DÐ@VÔWYÐVZÐ[ð9
Ð#ó ˆð ×!Ñ!¬R¸ÐTXÐdhÑJiÐ!ÓjˆØ�|‰|‹~ˆð	Ø�I‰I”h¨Ð:LˆIÔMð ˆÜ�r“ò 	ˆAÜ�J‰J�qŒMðØ—|‘|“~�Ø  DÑ(¨U°d©]Ø!�FÙøð	ñ ÜÐ'¨tÕ4Ü�H‰H�QŒKÜÐ%¨TÕ2ØˆÜ˜˜I¨™MÓ*ò 	1ˆCØ—<‘<“>ˆDÜ˜tÓ$ˆEÙØ˜‘	�Ø˜1’9Ùà�Ø&+ÖH ¨r°$©x¸xÒ/GšÐHˆIÐHØ×Ñ˜UÔ#Ü�H˜S˜E ¤C¨£J <¨x¼¸I»Ð7GÀzÔRUÐV_ÓR`ÐQaÐbÐjnÕoðØ—‘Ð EÀcÈAÁgÀYÈaÐPÔQô �J‰J”v—~‘~ c¨3Ó/Õ0ð#	1ð$ 	�‰Œ÷Y,ôZ 
ˆNœ3˜y›>Ð*Ð*?Ð
@ÈÕMô 	ŒS�# Ô(€AØ€M€BˆØ'ÖD˜¨2¨d©8¸8Ò+C’ÐD€IÐDØó $9ˆð	Ü  5¡	Ó*ˆDô ˜4Ó ˆØ�6Š{Ø�A‰IˆDØ”xÒÜÐ3¸4Õ@ÚÜÐ% b¨¡h Z¨q°°G±¸S¸bÐ1AÐ0BÐCÈ4ÖPàˆDà�T‘(Ø˜‘\Ò0 R¨¡[Ø˜‘KÒ- 2 f¡:Ø�e‘9Ø Ø#Ø˜‘KØ˜}Ñ-Ü"Ÿ,™,›.×1Ñ1Ð2EÓFñ

ˆð 	
�‰”—
‘
˜3¨UÔ3°dÑ:Ô;Ø	�‰Œ	Ø�‰�R˜‘XÔØ
ˆa‰ˆØ�‰7�aŠ<Ü�J˜r˜d -´°H³¨¸aÐ@ÈÕMÜ�
‰
”6—>‘>¤)¬YÓ7Ö8ðI$9ðJ ‡G�G„IÜ	Ð'¨ t¨=¼¸X»¸ÀxÔPSÈuÐ
UÐ]aÖbøô ò Úðûô ò 	Úð	ûô ò Úðüò  Iøô ò Úðú÷S,ñ ,üòd Eøô ò 	Ü�K  4¡˜z¨¼¸a»×9IÑ9IÐ8JÐKÐSWÕXØ�A‰IˆDØ”xÒÜÐ0¸Õ=ÝÝûð	úsÄ   Á	'QÂARÃ3QÄ%RÄ1Q,ÅA8RÇQ<ÇQ<ÇARÈRÈ4;RÊ+RÊ8RËR#Ñ	QÑQÑ	Q)Ñ%RÑ(Q)Ñ)RÑ,	Q9Ñ5RÑ8Q9Ñ9RÒ	RÒ
RÒRÒRÒRÒ#	TÒ,AS<Ó<TÚ__main__)+Ú__doc__rM   rG   Úrer\   rY   ra   Úurllib.requestr   r   Úbs4r   Úplaywright.sync_apir   r   rW   r   rJ   rE   rk   rl   re   r   rH   ÚinsertÚimportlib.utilÚ	importlibÚutilÚspec_from_file_locationÚspecÚmodule_from_specr   ÚloaderÚexec_moduler^   rf   ÚKEEPÚUNWRAPÚDROPÚ
clean_htmlr#   r‚   rd   © ó    r"   ú<module>r˜      s   ðñ÷ 7× 6× 6Ó 6Ý Ý Ý /à#€ØÐcÑc€Ø€Ø €Ø€	ØÑ €	ˆ9Ø€Øv€à ‡�‡��Ð&Ô 'Û Ø‡~�~×-Ñ-¨eÐ5_Ó`€Ø‡n�n×%Ñ% dÓ+€Ø ‡�× Ñ ˜Ô Ø�^‰^€
Ø×Ñ€Ø
‡x�x€Ø	�‰€Ø
‡x�x€Ø�^‰^€
ò9òfcðP ˆzÒÙ…Fð r—   