Ë
    6ß©j  ã                   ór  — 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
 ej                  j                  dej                  j                  ej                  j                  e«      «      «       ddlmZ dZdZdZdZdZ eej0                  «      D ]=  \  ZZed	k(  sŒed
z    eej0                  «      k  sŒ% eej0                  ed
z      «      Z n e� ed ee«      z   «        ej>                  «       Z de _!        ejD                  e _#        ddiZ$dd„Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+e,dk(  r e+«        yy)u  
å®¿è¿�å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€ - å»ºè®¾é¡¹ç›®ä¿¡æ�¯å…¬å¼€
https://sthj.suqian.gov.cn/shbj/jsxm/xxgk_list.shtml
Pagination: static (createPageHTML), 173 pages, 16/page
Detail: UCAPCONTENT content, meta ArticleTitle, meta PubDate
æ³¨æ„�: DNS å·²å†™å…¥ /etc/hosts (116.198.151.205)
é    N)ÚBeautifulSoup)Úpush_to_searchdbzhttps://sthj.suqian.gov.cnz/shbj/jsxm/xxgk_listé­   u%   å®¿è¿�å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€-å»ºè®¾é¡¹ç›®z--pagesé   z[AutoPg] max_pages=Fz
User-Agentz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36c                 ó0  — t         j                  j                  | t        ¬«      }	 t         j                  j	                  ||t
        ¬«      }|j                  «       j                  dd¬«      S # t        $ r}t        d| d d › d|› �«       Y d }~y d }~ww xY w)	N)Úheaders)ÚtimeoutÚcontextzutf-8Úreplace)Úerrorsz	  [WARN] é<   z: )
ÚurllibÚrequestÚRequestÚHEADERSÚurlopenÚssl_ctxÚreadÚdecodeÚ	ExceptionÚprint)Úurlr	   ÚreqÚrespÚes        úcrawl_suqian_jsxm.pyÚ	fetch_urlr   $   s…   € Ü
�.‰.×
 Ñ
  ¬gÐ
 Ó
6€CðÜ�~‰~×%Ñ% c°7ÄGÐ%ÓLˆØ�y‰y‹{×!Ñ! '°)Ð!Ó<Ð<øÜò Ü�	˜#˜c˜r˜(˜ 2 a SÐ)Ô*Üûðús   §AA. Á.	BÁ7BÂBc                 óJ  — g }t        j                  d| t         j                  «      }|s|S t        j                  d|j	                  d«      t         j                  «      }|D �]=  }t        j                  d|«      }|sŒ|j	                  d«      j                  «       }|j                  d«      r
t        |z   }n |j                  d«      st        dz   |z   }n|}d }t        j                  d|«      }	|	r |	j	                  d«      j                  «       }n7t        j                  d	|«      }	|	r|	j	                  d«      j                  «       }t        j                  d
|«      }
|
r|
j	                  d«      j                  «       nd}|s�Œ%|s�Œ)|j                  |||dœ«       �Œ@ |S )Nz$<ul\s+class="listContent">(.*?)</ul>z<li>(.*?)</li>r   z<a\s+href="([^"]*)"ú/Úhttpz/shbj/jsxm/ztitle="([^"]*)"ztitle='([^']*)'z <span>(\d{4}-\d{2}-\d{2})</span>Ú )r   ÚtitleÚpublish_date)	ÚreÚsearchÚDOTALLÚfindallÚgroupÚstripÚ
startswithÚBASE_URLÚappend)ÚhtmlÚitemsÚmÚlisÚliÚamÚhrefr   r"   ÚtmÚdmr#   s               r   Úextract_list_itemsr6   .   s[  € Ø€EÜ
�	‰	Ð9¸4ÄÇÁÓK€AÙØˆä
�*‰*Ð&¨¯©°«
´B·I±IÓ
>€CØó UˆÜ�Y‰YÐ-¨rÓ2ˆÙØà�x‰x˜‹{× Ñ Ó"ˆØ�?‰?˜3ÔÜ˜T‘/‰CØ—‘ Ô(Ü˜]Ñ*¨TÑ1‰CàˆCàˆÜ�Y‰YÐ)¨2Ó.ˆÙØ—H‘H˜Q“K×%Ñ%Ó'‰Eä—‘Ð-¨rÓ2ˆBÙØŸ™ ›×)Ñ)Ó+�ä�Y‰YÐ:¸BÓ?ˆÙ.0�r—x‘x “{×(Ñ(Ô*°bˆã“SØ�L‰L ¨uÀlÑSÖTð5Uð8 €Ló    c                 ó’   — |j                  d«      r|S |j                  d«      r	t        |z   S | j                  dd«      d   dz   |z   S )Nr    r   r   r   )r*   r+   Úrsplit)Úpage_urlÚsrcs     r   Úresolve_urlr<   T   sI   € Ø
‡~�~�fÔØˆ
Ø
‡~�~�cÔÜ˜#‰~ÐØ�?‰?˜3 Ó" 1Ñ%¨Ñ+¨cÑ1Ð1r7   c                 ó:  — t        | d«      }|j                  ddg«      D ]  }|j                  «        Œ g }|j                  D �],  }|j                  sŒ|j                  dk(  r9t        |j                  d¬«      «      dk\  r|j                  t        |«      «       ŒY|j                  dk(  r7|j                  d	d
«      }|sŒ}|j                  dt        ||«      z   dz   «       ŒŸ|j                  dv sŒ®|j                  d«      rŒÀ|j                  dd¬«      }t        j                  dd
|«      }t        j                  dd
|«      }t        j                  dd
|«      }|s�Œ|j                  |«       �Œ/ dj                  |«      }t        j                  dd|«      }|S )Nzhtml.parserÚscriptÚstyleÚtableT)r)   é   Úimgr;   r!   z![](ú))ÚpÚdivÚspanÚsectionú z3(?<=[\u4e00-\u9fff])[ \t\u3000]+(?=[\u4e00-\u9fff])z&(?<=[\u4e00-\u9fff])[ \t\u3000]+(?=\d)z&(?<=\d)[ \t\u3000]+(?=[\u4e00-\u9fff])z

z\n{3,})r   Úfind_allÚ	decomposeÚchildrenÚnameÚlenÚget_textr,   ÚstrÚgetr<   Úfind_parentr$   ÚsubÚjoin)	Úrawr:   ÚsoupÚtÚpartsÚchildr;   ÚtextÚresults	            r   Úextract_contentr[   \   sh  € Ü˜˜mÓ,€DØ�]‰]˜H gÐ.Ó/ò ˆØ	�‰�ðð €EØ—‘ó #ˆØ�zŠzØØ�:‰:˜Ò ¤S¨¯©¸d¨Ó)CÓ%DÈÒ%JØ�L‰Lœ˜U›Õ$Ø�Z‰Z˜5Ò Ø—)‘)˜E 2Ó&ˆCÚØ—‘˜V¤k°(¸CÓ&@Ñ@À3ÑFÕGØ�Z‰ZÐ:Ò:à× Ñ  Ô)ØØ—>‘> #¨T�>Ó2ˆDä—6‘6ÐPÐRTÐVZÓ[ˆDÜ—6‘6ÐCÀRÈÓNˆDÜ—6‘6ÐCÀRÈÓNˆDÛØ—‘˜TÖ"ð'#ð* �[‰[˜Ó€FÜ�V‰V�I˜v vÓ.€FØ€Mr7   c           
      ó.  — g }t        j                  dt         j                  «      }|j                  | «      D ]Z  }|j	                  |j                  d«      j                  «       t        ||j                  d«      j                  «       «      dœ«       Œ\ |S )NzL<a\s+[^>]*href="([^"]*\.(?:doc|docx|pdf|xls|xlsx|zip|rar))"[^>]*>([^<]*)</a>é   r   )rL   r   )r$   ÚcompileÚIÚfinditerr,   r(   r)   r<   )r-   r:   ÚattsrD   r/   s        r   Úextract_attachmentsrb   |   s}   € Ø€DÜ
�
‰
ØWÔY[×Y]ÑY]ó	€Að �Z‰Z˜Óò dˆØ�‰˜QŸW™W Q›Z×-Ñ-Ó/¼ÀHÈaÏgÉgÐVWËj×N^ÑN^ÓN`Ó8aÑbÕcðdà€Kr7   c                 óÆ  — t        | «      }|sd d d g fS d }t        j                  d|«      }|r4t        j                  dd|j	                  d«      «      j                  «       }d }t        j                  d|«      }|r|j	                  d«      }d }t        j                  d|t        j                  «      }|rt        |j	                  d«      | «      }t        || «      }||||fS )Nz/<meta\s+name="ArticleTitle"\s+content="([^"]*)"z\s+rH   r   z5<meta\s+name="PubDate"\s+content="(\d{4}-\d{2}-\d{2})z <UCAPCONTENT>(.*?)</UCAPCONTENT>)	r   r$   r%   rR   r(   r)   r&   r[   rb   )Ú
detail_urlr-   r"   r/   r#   ÚcontentÚattachmentss          r   Úfetch_detailrg   †   sÎ   € Ü�ZÓ €DÙØ�T˜4 Ð#Ð#à€EÜ
�	‰	ÐDÀdÓK€AÙÜ—‘�v˜s A§G¡G¨A£JÓ/×5Ñ5Ó7ˆà€LÜ
�	‰	ÐJÈDÓQ€AÙØ—w‘w˜q“zˆà€GÜ
�	‰	Ð5°t¼R¿Y¹YÓG€AÙÜ! !§'¡'¨!£*¨jÓ9ˆä% d¨JÓ7€KØ�, ¨Ð4Ð4r7   c                  ó®  — t         rt        t        t         «      nt        } t        dt        › d�«       t        dt        › d| › �«       g }dx}}d}t        d| dz   «      D �]+  }|dk(  r	t        › d�nt        › d|› d�}t        d	|› d
| › dt        |z   › �«       t        t        |z   «      }|st        d«        nÕt        |«      }|s|dkD  rt        d«        n¶t        d«       Œ…|}|t        |«      z  }t        dt        |«      › d�«       |D ]z  }	t        j                  d«       t        |	d   «      \  }
}}}|
r|
|	d<   |r||	d<   |xs d|	d<   ||	d<   |rt        |j                  «       «      dk  r|dz  }|j                  |	«       Œ| �Œ. t        d|› dt        |«      › d|› �«       |r�g }|D ]Š  }	t!        j"                  dd|	j%                  dd«      «      d d j                  «       }|s|	d   d d }|j                  t        |	d   |	d   |	j%                  dd«      ||	j%                  dd«      |	d   dœ«       ŒŒ t'        |d«       t        d «       y )!Nz=== z ===u     æ€»é¡µæ•°: u
   , æœ¬æ¬¡: r   r   z.shtmlÚ_u     ç¬¬ r   u    é¡µ: u       æ— æ³•èŽ·å�–, å�œæ­¢u       ç©ºåˆ—è¡¨, å�œæ­¢u       ç©ºåˆ—è¡¨u       æ‰¾åˆ° u    æ�¡g333333Ó?r   r"   r#   r!   re   rf   é   u   
  åˆ—è¡¨æ€»è®¡: u   , å…¥åº“å‡†å¤‡: u   , ç©ºæ­£æ–‡: z<[^>]+>éÈ   )Ú	site_namer"   r   re   ÚsummaryÚpub_dateÚ
source_urlÚsuqian_jsxmu   å®Œæˆ�)Ú_MAX_PGÚminÚTOTAL_PAGESr   Ú	SITE_NAMEÚrangeÚ	LIST_PATHr+   r   r6   rM   ÚtimeÚsleeprg   r)   r,   r$   rR   rP   r   )Úpages_to_fetchÚall_recordsÚemptyÚtotalÚ	last_pageÚpageÚlist_urlr-   r.   Úitemr"   r#   re   rf   Úresultsrm   s                   r   Úmainr‚   ž   sƒ  € Ý29”Sœ¤gÔ.¼{€Nä	ˆD”�˜4Ð
 Ô!Ü	ˆMœ+˜ j°Ð0@Ð
AÔBà€KØÐ€EˆEØ€Iä�a˜¨!Ñ+Ó,ó  %ˆØ+/°1ª9”i�[ Ñ'¼Y¸KÀqÈÈÈfÐ:UˆÜ��t�f˜A˜nÐ-¨V´H¸xÑ4GÐ3HÐIÔJäœ HÑ,Ó-ˆÙÜÐ,Ô.Ùä" 4Ó(ˆÙØ�aŠxÜÐ-Ô/ÙÜ�MÔ#Øàˆ	Ø”�U“ÑˆÜ�œC ›J˜< tÐ,Ô-àò 	%ˆDÜ�J‰J�sŒOÜ8DÀTÈ%Á[Ó8QÑ5ˆE�< ¨+ÙØ %��W‘ÙØ'3��^Ñ$Ø%šm¨ˆD�‰OØ"-ˆD�ÑÙœc '§-¡-£/Ó2°RÒ7Ø˜‘
�Ø×Ñ˜tÕ$ò	%ð+ %ôD 
Ð˜u˜gÐ%5´c¸+Ó6FÐ5GÀ}ÐUZÐT[Ð
\Ô]áàˆØò 	ˆDÜ—f‘f˜Z¨¨T¯X©X°iÀÓ-DÓEÀdÀsÐK×QÑQÓSˆGÙØ˜w™-¨¨Ð-�Ø�N‰NÜ&Ø˜g™Ø˜E‘{ØŸ8™8 I¨rÓ2Ø"Ø ŸH™H ^°RÓ8Ø" 5™kñõ ð		ô 	˜ -Ô0ä	ˆ(…Or7   Ú__main__)é   )-Ú__doc__Úurllib.requestr   Újsonr$   ÚsysÚsslrw   ÚosÚbs4r   ÚpathÚinsertÚdirnameÚabspathÚ__file__Úcrawler_libr   r+   rv   rs   rt   rq   Ú	enumerateÚargvÚiÚarM   Úintr   rO   Úcreate_default_contextr   Úcheck_hostnameÚ	CERT_NONEÚverify_moder   r   r6   r<   r[   rb   rg   r‚   Ú__name__© r7   r   ú<module>r�      s8  ðñ÷ 4× 3× 3Ó 3Ý à ‡�‡���2—7‘7—?‘? 2§7¡7§?¡?°8Ó#<Ó=Ô >Ý (à'€Ø"€	Ø€Ø3€	ð €Ù�c—h‘hÓò �D€A€qØˆIƒ~˜!˜a™%¡# c§h¡h£-Ó/Ù�c—h‘h˜q 1™u‘oÓ&ˆÙðð ÐÙ	Ð
¡# g£,Ñ
.Ô/à
$ˆ#×
$Ñ
$Ó
&€Ø€Ô Ø—m‘m€Ô ØÐWÐ
X€óò#òL2òò@ò5ò0@ðF ˆzÒÙ…Fð r7   