Ë
    ¸¬ujK%  ã                   óp  — d Z ddlZddlm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Z
dZdZdZd	Zd
ZdZdZddddddddœZddddœZej(                  j+                  dej(                  j-                  ej(                  j/                  e«      «      «       ddlmZ d„ Zdedefd„Zd„ Zde de!fd „Z"defd!„Z#d2d#ed$e$fd%„Z%e&d&k(  rr ejN                  e› d'e› d(�¬)«      Z(e(jS                  d*ed"d+¬,«       e(jS                  d-d.d/¬0«       e(jU                  «       Z+ e%e+jX                  e+jZ                   ¬1«       yy)3uz  
èˆŸå±±å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€ â€” å»ºè®¾é¡¹ç›®çŽ¯å¢ƒå½±å“�çŽ¯è¯„å®¡æ‰¹å…¬ç¤ºæ �ç›®çˆ¬è™«
URL: http://zshbj.zhoushan.gov.cn/col/col1229856873/index.html
CMS: Hanweb 4.5.12.1 (Zhejiang variant, APIåŠ¨æ€�åŠ è½½)
éœ€è‡ªå®šä¹‰UAå¤´ç»•è¿‡OpenResty WAF (403)
API: GET /api-gateway/jpaas-publish-server/front/page/build/unit
Detail: <div id="div_content"> / <div id="div_border"> å�«è¡¨æ ¼
é    N)ÚBeautifulSoup)Údatetimezhttp://zshbj.zhoushan.gov.cnzShttp://zshbj.zhoushan.gov.cn/api-gateway/jpaas-publish-server/front/page/build/unitz9http://zshbj.zhoushan.gov.cn/col/col1229856873/index.htmlu   èˆŸå±±å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€u*   å»ºè®¾é¡¹ç›®çŽ¯å¢ƒå½±å“�çŽ¯è¯„å®¡æ‰¹å…¬ç¤ºu	   æµ™æ±Ÿçœ�u   çŽ¯è¯„å…¬ç¤ºé   ÚbulidstaticÚ3122ÚLS880IEmCMko8ZoNROB1yÚcolumnu   æ �ç›®å†…å®¹listÚnullÚ
1229856873)Ú	parseTypeÚwebIdÚtplSetIdÚpageTypeÚtagIdÚeditTypeÚpageIdzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.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)z
User-AgentÚAcceptzAccept-Language)Úpush_to_searchdbc                 ó  — 	 t        j                  | t        d¬«      }|j                  dk(  rd|_        |j
                  S t        d|j                  › �d¬«       y # t        $ r}t        d|› �d¬«       Y d }~y d }~ww xY w)	Né   )ÚheadersÚtimeoutéÈ   zutf-8u       âš ï¸� HTTP T©Úflushu       â�Œ è¯·æ±‚å¤±è´¥: )ÚrequestsÚgetÚHEADERSÚstatus_codeÚencodingÚtextÚprintÚ	Exception)ÚurlÚrÚes      ú'/root/gov_crawler/crawl_zhoushan_hbj.pyÚ
safe_fetchr(   2   ss   € ð	Ü�L‰L˜¤g°rÔ:ˆØ�=‰=˜CÒØ ˆAŒJØ—6‘6ˆMÜÐ  §¡ Ð0¸Õ=ØøÜò ÜÐ& q cÐ*°$Õ7Üûðús   ‚=A Á A Á	A>Á$A9Á9A>Úpage_noÚreturnc                 óú  — i t         ¥}t        j                  | t        dœd¬«      |d<   	 t	        j
                  t        |t        d¬«      }|j                  «        |j                  «       }|j                  di «      j                  dd«      }|st        d| › d�d	¬
«       g S t        |d«      }g }|j                  dd	¬«      D �]k  }|d   j                  «       }	|j                  dd«      j                  «       xs |j                  d	¬«      }
|
r|	j                  d«      sŒ_d}|j                   }|rà|j#                  dd„ ¬«      }|s>|j                   j                  d«      }t%        |«      dk\  r|d   j                  d	¬«      }|r!||j                   k7  r|j                  d	¬«      }|sg|}|r-|j&                  dk7  r|j                   }|r|j&                  dk7  rŒ|r4|j                  d«      }t%        |«      dk\  r|d   j                  d	¬«      }t(        |	z   }|j+                  |
||f«       �Œn t        d| › dt%        |«      › d �d	¬
«       |S # t        $ r}t        d| › d|› �d	¬
«       g cY d}~S d}~ww xY w)!u6   èŽ·å�–åˆ—è¡¨é¡µï¼Œè¿”å›ž [(title, url, pub_date), ...]©ÚpageNoÚpageSizeF©Úensure_asciiÚ	paramJsoné   ©Úparamsr   r   u     â�Œ åˆ—è¡¨é¡µ u    è¯·æ±‚å¤±è´¥: Tr   NÚdataÚhtmlÚ u    æ— HTMLæ•°æ�®úhtml.parserÚa)Úhrefr:   Útitle©Ústripú/Úspanc                 ó@   — | xr dt        | «      j                  «       v S )NÚcolor)ÚstrÚlower)Úxs    r'   ú<lambda>z!fetch_list_page.<locals>.<lambda>\   s    € À1ÒCbÈÔTWÐXYÓTZ×T`ÑT`ÓTbÐIb€ ó    )ÚstyleÚtdé   éÿÿÿÿÚtru
     ðŸ“„ ç¬¬u   é¡µ: u   æ�¡)ÚBASE_API_PARAMSÚjsonÚdumpsÚROWSr   r   ÚLIST_APIr   Úraise_for_statusr#   r"   r   Úfind_allr=   Úget_textÚ
startswithÚparentÚfind_previousÚlenÚnameÚBASE_URLÚappend)r)   r4   Úrespr5   r&   r6   ÚsoupÚitemsÚa_tagr:   r;   Údate_strrU   Údate_elÚrowÚtdsr$   s                    r'   Úfetch_list_pagerc   ?   s_  € à ”Ð €FÜŸ*™*°ÄTÑ%JÐY^Ô_€Fˆ;ÑðÜ�|‰|œH¨V¼WÈbÔQˆØ×ÑÔØ�y‰y‹{ˆð
 �8‰8�F˜BÓ×#Ñ# F¨BÓ/€DÙÜÐ   	¨Ð8ÀÕEØˆ	ä˜˜}Ó-€DØ€EØ—‘˜s¨�Ó.ó -ˆØ�V‰}×"Ñ"Ó$ˆØ—	‘	˜' 2Ó&×,Ñ,Ó.ÒL°%·.±.Àt°.Ó2LˆÙ˜DŸO™O¨CÔ0ØàˆØ—‘ˆÙà×*Ñ*¨6Ñ9bÐ*ÓcˆGÙØ Ÿ-™-×0Ñ0°Ó6�Ü�w“< 1Ò$à& r™{×3Ñ3¸$Ð3Ó?�HÙ˜7 e§l¡lÒ2Ø"×+Ñ+°$Ð+Ó7�Ùà�Ù˜cŸh™h¨$Ò.ØŸ*™*�Cñ ˜cŸh™h¨$Ó.áØŸ,™, tÓ,�CÜ˜3“x 1’}Ø#& r¡7×#3Ñ#3¸$Ð#3Ó#?˜ä˜‰oˆØ�‰�e˜S (Ð+Ö,ð;-ô> 
ˆJ�w�i˜u¤S¨£Z L°Ð
4¸DÕAØ€LøôW ò ÜÐ   	¨¸¸Ð<ÀDÕIØ�	ûðús   «AI É	I:ÉI5É/I:É5I:c                 óŠ   ‡‡‡— g Št        «       Šˆˆˆfd„Š ‰| «       ‰rdj                  ‰«      S | j                  dd¬«      S )u:   é€’å½’æ��å�–æ­£æ–‡ï¼Œä¿�ç•™è¡¨æ ¼HTMLï¼Œè·³è¿‡å…ƒæ•°æ�®divc                 ó¦  •— | j                   D ]Á  }|j                  dk(  r‰j                  t        |«      «       Œ-|j                  sŒ:|j                  dvsŒIt	        |j                  dg «      xs g «      }|‰z  rŒn|j                  d«      r	 ‰|«       Œˆ|j                  dk(  rdnd}|j                  |d¬«      }|sŒ±‰j                  |«       ŒÃ y )	NÚtable)ÚscriptrG   ÚclassÚpr7   ú Tr<   )ÚchildrenrX   rZ   rB   Úsetr   rR   rS   )ÚelÚchildÚchild_classesÚsepÚtxtÚcontent_partsÚskip_classesÚwalk_elements        €€€r'   rt   z1extract_content_with_tables.<locals>.walk_elementz   sµ   ø€ Ø—[‘[ò 	2ˆEØ�z‰z˜WÒ$Ø×$Ñ$¤S¨£ZÕ0Ø—“ §
¡
Ð2EÒ EÜ # E§I¡I¨g°rÓ$:Ò$@¸bÓ A�Ø  <Ò/ØØ—>‘> 'Ô*Ù  Õ'à %§
¡
¨cÒ 1™"°s�CØŸ.™.¨°D˜.Ó9�CÚØ%×,Ñ,¨SÕ1ñ	2rF   ú
rj   Tr<   )rl   ÚjoinrS   )Úcontent_divrr   rs   rt   s    @@@r'   Úextract_content_with_tablesrx   u   sE   ú€ à€MÜ“5€Lö2ñ �ÔÙ'4ˆ4�9‰9�]Ó#Ð_¸+×:NÑ:NÈsÐZ^Ð:NÓ:_Ð_rF   r$   c                 ó  — t        | «      }|€yt        |d«      }d}|j                  dddi¬«      }|r$|j                  d«      r|d   j	                  «       }|s%|j                  d	«      }|r|j                  d
¬«      }d}|j                  dddi¬«      }|r$|j                  d«      r|d   j	                  «       }|j                  dd¬«      xs( |j                  dd¬«      xs |j                  dd¬«      }|rt        |«      nd}	||	|fS )u7   èŽ·å�–è¯¦æƒ…é¡µï¼Œè¿”å›ž (title, content, publish_date))Nr7   r7   r8   r7   ÚmetarX   ÚArticleTitle)ÚattrsÚcontentr;   Tr<   ÚPubDateÚdivÚdiv_content)ÚidÚ
div_borderÚdiv_main_content)r(   r   Úfindr   r=   rS   rx   )
r$   r6   r\   r;   Ú
meta_titleÚtitletagÚpub_dateÚ	meta_daterw   r}   s
             r'   Úfetch_detailr‰   �   s%  € ä�c‹?€DØ€|Øä˜˜}Ó-€Dð €EØ—‘˜6¨&°.Ð)A�ÓB€JÙ�j—n‘n YÔ/Ø˜9Ñ%×+Ñ+Ó-ˆÙØ—9‘9˜WÓ%ˆÙØ×%Ñ%¨DÐ%Ó1ˆEð €HØ—	‘	˜&¨°Ð(;�	Ó<€IÙ�Y—]‘] 9Ô-Ø˜YÑ'×-Ñ-Ó/ˆð —)‘)˜E m�)Ó4ò :Ø—)‘)˜E l�)Ó3ò:à—)‘)˜EÐ&8�)Ó9ð ñ ;FÔ)¨+Ô6È2€Gà�'˜8Ð#Ð#rF   c                  ó‚  — i t         ¥} t        j                  dt        dœd¬«      | d<   	 t	        j
                  t        | t        d¬«      }|j                  «       }|j                  di «      j                  d	d
«      }t        j                  d|«      }|rt        |j                  d«      «      S 	 y# t        $ r Y yw xY w)u   èŽ·å�–æ€»æ�¡æ•°é   r,   Fr/   r1   r2   r3   r5   r6   r7   zcount="(\d+)"r   )rL   rM   rN   rO   r   r   rP   r   ÚreÚsearchÚintÚgroupr#   )r4   r[   r5   r6   Úms        r'   Úget_total_countr‘   ®   s¯   € à ”Ð €FÜŸ*™*°¼tÑ%DÐSXÔY€Fˆ;ÑðÜ�|‰|œH¨V¼WÈbÔQˆØ�y‰y‹{ˆØ�x‰x˜ Ó#×'Ñ'¨°Ó3ˆÜ�I‰IÐ&¨Ó-ˆÙÜ�q—w‘w˜q“z“?Ð"ð ð øô ò ØØðús   «BB2 Â2	B>Â=B>é   ÚpagesÚpushc                 ó´  — t        «       }|rt        d|t        z   dz
  t        z  «      nd}| dkD  rt        | |«      n|}t	        dt
        › dt        › �d¬«       t	        d|› d	|› d
|› d�d¬«       g }t        d|dz   «      D ]3  }t        |«      }|st	        d|› d�d¬«        n|j                  |«       Œ5 t	        dt        |«      › d�d¬«       t	        d› d¬«       g }d}	t        |d«      D ]â  \  }
\  }}}t	        d|
› dt        |«      › d|dd › �d¬«       t	        d|› �d¬«       |rt	        d|› �d¬«       t        |«      \  }}}|€t	        dd¬«       |	dz  }	Œr|xs |}|xs |}|dd j                  dd«      }t	        dt        |«      › d|› d�d¬«       |j                  ||||||r|dd n|t
        t        t         t        d œ
«       Œä |rG|rEt	        dd› �d¬«       t	        d!t        |«      › d"�d¬«       t#        |t
        › d#t        › �¬$«       n|rt	        d%d¬«       t	        dd› �d¬«       t	        d&t        |«      › d'|	› �d¬«       y)(u	   ä¸»çˆ¬è™«r‹   é%   r   u   ðŸ”� ú - Tr   u   ðŸ“Š æ€»è®¡ u    æ�¡, u    é¡µ, æœ¬æ¬¡çˆ¬å�– u    é¡µu     âš ï¸� ç¬¬u   é¡µä¸ºç©ºï¼Œå�œæ­¢ç¿»é¡µu   
ðŸ“‹ åˆ—è¡¨å…± u    æ�¡z<============================================================z
[r>   z] Né<   u	       ðŸ“Ž u	       ðŸ“… u       â�Œ è¯¦æƒ…èŽ·å�–å¤±è´¥éP   ru   rj   u       âœ… æ­£æ–‡ u    å­—: z...iô  )
r;   r$   Ú
source_urlr‡   r}   ÚsummaryÚ	site_nameÚ
group_nameÚindustryÚcategoryu   ðŸ“¤ æ­£åœ¨æŽ¨é€� u    æ�¡åˆ° search.db...ú-)Úbatch_labelu   
âš ï¸� æ— æ•°æ�®å�¯æŽ¨é€�u   âœ… å®Œæˆ�: å…±u   æ�¡, å¤±è´¥)r‘   ÚmaxrO   Úminr"   Ú	SITE_NAMEÚCOLUMN_NAMEÚrangerc   ÚextendrW   Ú	enumerater‰   ÚreplacerZ   ÚGROUPÚINDUSTRYr   )r“   r”   ÚtotalÚtotal_pagesÚactual_pagesÚ	all_itemsÚpager]   Ú
push_itemsÚ
fail_countÚidxr;   r$   r_   Údetail_titler}   r‡   Úfinal_titleÚ
final_dateÚcontent_previews                       r'   Úcrawlr¸   ¾   sœ  € äÓ€EÙ8=”#�a˜%¤$™,¨Ñ*¬tÑ3Ô4À2€KØ.3°aªi”3�u˜kÔ*¸[€Lä	ˆE”)�˜C¤˜}Ð
-°TÕ:Ü	ˆL˜˜˜v k ]Ð2EÀlÀ^ÐSWÐ
XÐ`dÕeà€IÜ�a˜¨Ñ)Ó*ò  ˆÜ Ó%ˆÙÜ�L  Ð&>Ð?ÀtÕLÙØ×Ñ˜Õð ô 
Ðœc )›nÐ-¨TÐ
2¸$Õ?Ü	ˆVˆH˜TÕ"à€JØ€Jä'0°¸AÓ'>ò Ñ#ˆÑ#ˆe�S˜(Ü��C�5˜œ#˜i›.Ð)¨¨E°#°2¨J¨<Ð8ÀÕEÜ�	˜#˜Ð tÕ,ÙÜ�I˜h˜ZÐ(°Õ5ä*6°sÓ*;Ñ'ˆ�g˜xØÐÜÐ.°tÕ<Ø˜!‰OˆJØà"Ò+ eˆØÒ) ˆ
à! # 2˜,×.Ñ.¨t°SÓ9ˆÜ�¤ G£˜~¨V°OÐ3DÀCÐHÐPTÕUà×ÑØ ØØØ"ØÙ(/�w˜t ‘}°[Ü"ÜÜ Ü#ñ
õ 	ð%ñ> ‘
Ü��6�(ˆm 4Õ(ÜÐ"¤3 z£?Ð"3Ð3GÐHÐPTÕUÜ˜´I°;¸aÄ¸}Ð1MÖNÙ	ÜÐ+°DÕ9ä	ˆBˆvˆhˆ-˜tÕ$Ü	ˆOœC 
›OÐ,¨K¸
°|Ð
DÈDÖQrF   Ú__main__r—   u    çˆ¬è™«)Údescriptionz--pagesu   çˆ¬å�–é¡µæ•° (0=å…¨éƒ¨))ÚtypeÚdefaultÚhelpz	--no-pushÚ
store_trueu   ä¸�æŽ¨é€�åˆ°search.db)Úactionr½   )r“   r”   )r’   T).Ú__doc__r   Úbs4r   rM   rŒ   ÚsysÚosÚargparser   rY   rP   ÚCOL_LIST_URLr¤   r¥   rª   r«   rO   rL   r   ÚpathÚinsertÚdirnameÚabspathÚ__file__Úcrawler_libr   r(   rŽ   Úlistrc   rx   rB   Útupler‰   r‘   Úboolr¸   Ú__name__ÚArgumentParserÚparserÚadd_argumentÚ
parse_argsÚargsr“   Úno_push© rF   r'   ú<module>r×      s…  ðñó Ý Û Û 	Û 
Û 	Û Ý ð *€Ø`€ØJ€Ø&€	Ø:€Ø€Ø€Ø	€ð ØØ'ØØØØñ€ðGàOØ'ñ	€ð ‡�‡���2—7‘7—?‘? 2§7¡7§?¡?°8Ó#<Ó=Ô >Ý (ò
ð3˜Sð 3 Tó 3òl`ð0$�cð $˜eó $ðB˜ó ñ >R�ð >R ó >RðB ˆzÒØ$ˆX×$Ñ$°I°;¸cÀ+ÀÈgÐ1VÔW€FØ
×Ñ˜	¨°QÐ=VÐÔWØ
×Ñ˜¨LÐ?VÐÔWØ×ÑÓ€Dá	�—
‘
 T§\¡\Ð!1Ö2ð rF   