Ë
    eègj¨  ã                   óÊ  — 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Z	dZ
ddiZ ej                  dd	«      Z ej                  «        ed
¬«      z
  j                  d«      ZdZdej$                  v ZesdndZ ej*                  d«      Z ej*                  d«      Z ej*                  d«      Z ej*                  dej2                  «      Zd„ Zd„ Zedk(  r e«        yy)é    N)ÚdatetimeÚ	timedelta)ÚBeautifulSoupz:https://jkq.mas.gov.cn/content/column/4716728?pageIndex={}z+https://jkq.mas.gov.cn/xxfb/tzgg/index.htmlz
User-Agentz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36Ú	SEARCH_DBz/root/search.dbiG  )Údaysz%Y-%m-%du*   é©¬éž�å±±ç»�æµŽæŠ€æœ¯å¼€å�‘åŒºé€šçŸ¥å…¬å‘Šz--fullé   éd   zC<div\s+class="wzcon\s+j-fontContent"[^>]*>([\s\S]*?)</div>\s*</div>z/<meta\s+name="ArticleTitle"\s+content="([^"]+)"z*<meta\s+name="PubDate"\s+content="([^"]+)"zI<a[^>]+href="([^"]+\.(?:pdf|doc|docx|xls|xlsx|zip|rar))"[^>]*>([^<]+)</a>c                 ó°  — 	 t        j                  | t        d¬«      }d|_        |j                  }t        j                  |«      }t        j                  |«      }t        j                  |«      }|r|j                  d«      j                  «       nd}|r"|j                  d«      j                  «       dd nd}|r|j                  d«      j                  «       nd}	t        j                  |«      }
|
r<|	r:d	}|
D ])  \  }}|j                  d
«      r|nd|z   }|d|› d|› d�z  }Œ+ |dz  }|	|z  }	|||	fS # t
        $ r}t        d|› �«       Y d}~yd}~ww xY w)u4   æ��å�–è¯¦æƒ…é¡µæ ‡é¢˜ã€�æ—¥æœŸã€�æ­£æ–‡HTMLã€�é™„ä»¶é   ©ÚheadersÚtimeoutúutf-8z  Detail fetch error: N)NNNé   é
   u=   
<div class="attachments">
<p><strong>é™„ä»¶ï¼š</strong></p>
Úhttpúhttps://jkq.mas.gov.cnz<p><a href="z">z	</a></p>
z</div>)ÚrequestsÚgetÚHEADERSÚencodingÚtextÚ	ExceptionÚprintÚTITLE_META_PATÚsearchÚDATE_META_PATÚCONTENT_PATÚgroupÚstripÚ
ATTACH_PATÚfindallÚ
startswith)Ú
detail_urlÚrÚhtmlÚeÚtmÚdmÚcmÚtitleÚpub_dateÚcontentÚattachesÚattach_htmlÚurlÚfnameÚfull_urls                  ú!/root/gov_crawler/crawl_masjkq.pyÚextract_detailr4   !   s[  € ð Ü�L‰L˜¬W¸bÔAˆØˆŒ
Ø�v‰vˆô
 
×	Ñ	˜tÓ	$€BÜ	×	Ñ	˜dÓ	#€BÜ	×	Ñ	˜DÓ	!€Bá#%ˆB�H‰H�Q‹K×ÑÔ¨4€EÙ+-ˆr�x‰x˜‹{× Ñ Ó" 3 BÑ'°4€HÙ%'ˆb�h‰h�q‹k×ÑÔ!¨T€Gô ×!Ñ! $Ó'€HÙ‘GØZˆØ"ò 	H‰JˆC�Ø!Ÿn™n¨VÔ4‘sÐ:RÐUXÑ:XˆHØ˜\¨(¨°2°e°W¸JÐGÑG‰Kð	Hð 	�xÑˆØ�;Ñˆà�(˜GÐ#Ð#øô- ò  ÜÐ& q cÐ*Ô+Üûð ús   ‚/D4 Ä4	EÄ=EÅEc                  óø  — t        j                  t        «      } | j                  «       }dx}x}}t	        dt
        › dt        › �«       t        dt
        dz   «      D �]H  }|dk(  rt        }nt        j                  |«      }	 t        j                  |t        d¬«      }d|_        t!        |j"                  d
«      }	|	j%                  d«      D �
cg c](  }
|
j'                  d«      r|
j'                  dd¬«      r|
‘Œ* }}
|st	        d|› d�«        �n—dx}x}}|D �]:  }
|
j'                  d«      }|
j'                  dd¬«      }|j                  dd«      j)                  «       }|j+                  d«      sd|z   }|j                  dd«      j)                  «       xs |j-                  d¬«      }|j-                  d¬«      }|r|t.        k  r|dz  }Œµ|j1                  d|f«       |j3                  «       r|dz  }ŒÞt5        |«      \  }}}|xs |}|xs |}|€t	        d|d d › d�«       |dz  }�Œ|j1                  dt        ||||||f«       |dz  }|dz  }�Œ= | j7                  «        t	        d|› d|› d|› d|› d �	«       |t9        |«      k(  s�Œ3|t
        k  s�Œ>t	        d!«        n | j;                  «        t	        d"|› d|› d|› d#�«       |S # t        $ r}t	        d|› d	|› �«       Y d }~�Œ“d }~ww xY wc c}
w )$Nr   z	Crawling z
 pages of r   é   r   r   zPage z: fetch error - zhtml.parserzul.doc_list > liÚaÚspanÚdate)Úclass_z: empty, stoppingÚhrefÚ r   r   r+   T)r    z(SELECT 1 FROM gov_raw WHERE page_url = ?z  Skip (no content): é(   z...z}INSERT OR IGNORE INTO gov_raw (site_name, source_url, page_url, title, publish_date, content, summary) VALUES (?,?,?,?,?,?,?)z: +z new, z skip, z pre-cutoffz%All remaining before cutoff, stoppingz
Done: z before cutoff)Úsqlite3ÚconnectÚDB_PATHÚcursorr   Ú	MAX_PAGESÚ	SITE_NAMEÚrangeÚLIST_URL_P1ÚLIST_URLÚformatr   r   r   r   r   r   r   ÚselectÚfindr    r#   Úget_textÚCUTOFF_DATEÚexecuteÚfetchoner4   ÚcommitÚlenÚclose)ÚconnÚcÚ	total_newÚ
total_skipÚtotal_beforeÚpgr0   r%   r'   ÚsoupÚliÚitemsÚpage_newÚ	page_skipÚpage_beforer7   Úspr;   r+   r,   ÚdtÚddr-   ÚftÚfds                            r3   Úrunrb   @   s  € Ü�?‰?œ7Ó#€DØ�‰‹€AØ,-Ð-€IÐ-�
˜\ä	ˆI”i�[ 
¬9¨+Ð
6Ô7ä�A”y 1‘}Ó%ó Cˆà�Š7Ü‰Cä—/‘/ "Ó%ˆCð	Ü—‘˜S¬'¸2Ô>ˆAØ ˆAŒJô
 ˜QŸV™V ]Ó3ˆØ"Ÿk™kÐ*<Ó=ö E˜Ø—G‘G˜C”L R§W¡W¨V¸F WÔ%Cò ð Eˆð Eñ Ü�E˜"˜Ð.Ð/Ô0Úà-.Ð.ˆÐ.�9˜{Øó %	ˆBØ—‘˜“ˆAØ—‘˜¨�Ó/ˆBà—5‘5˜ Ó$×*Ñ*Ó,ˆDØ—?‘? 6Ô*Ø/°$Ñ6�ð —E‘E˜' 2Ó&×,Ñ,Ó.ÒH°!·*±*À4°*Ó2HˆEØ—{‘{¨�{Ó.ˆHá˜H¤{Ò2Ø˜qÑ �Øà�I‰IÐ@À4À'ÔJØ�z‰zŒ|Ø˜Q‘�	Øä,¨TÓ2‰OˆB��GØ’�uˆBØ’�xˆBàˆÜÐ-¨b°°"¨g¨Y°cÐ:Ô;Ø˜Q‘�	Ùà�I‰Ið)ô ˜D $¨¨B°¸Ð<ô	ð ˜‰MˆHØ˜‰NŠIðK%	ðN 	�‰ŒÜ��b�T˜˜X˜J f¨Y¨K°w¸{¸mÈ;ÐWÔXàœ#˜e›*Ô$¨¬i¬ÜÐ9Ô:ÙðGCðJ 	‡J�J„LÜ	ˆH�Y�K˜v j \°¸¸ÀnÐ
UÔVØÐøô{ ò 	Ü�E˜"˜Ð-¨a¨SÐ1Ô2Ýûð	üò
Es   Â#KÃ-K7Ë	K4ËK/Ë/K4Ú__main__)r   Úrer>   Úsysr   r   Úbs4r   ÚosrF   rE   r   Úgetenvr@   ÚnowÚstrftimerK   rC   ÚargvÚFULLrB   Úcompiler   r   r   ÚIr!   r4   rb   Ú__name__© ó    r3   ú<module>rr      sí   ð÷ "× !ß (Ý Û 	àG€Ø;€ØÐWÐ
X€Ø
ˆ"�)‰)�KÐ!2Ó
3€Øˆx�|‰|‹~¡	¨uÔ 5Ñ5×?Ñ?À
ÓK€Ø8€	Ø�3—8‘8Ð€Ù‰A˜s€	àˆb�j‰jØJó€ð �—‘ÐNÓO€Ø�—
‘
ÐHÓI€ØˆR�Z‰ZØPØ‡D�Dó€
ò$ò>Nðb ˆzÒÙ…Eð rq   