Ë
    ý&˜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  e j                  dd«      Z	ddiZ
dZdZd	Zd
ZdZd„ Zdd„Zdd„Zd„ Zd„ Zd„ Zedk(  r e«        yy)é    N)ÚBeautifulSoupÚ	SEARCH_DBz/mnt/data/search.dbz
User-Agentz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36zhttps://www.yanshougs.comÚ2Úyanshougs_sbysé   iÁ  c                 óä   — t        | d«      }|j                  d«      }g }t        |«      D ]7  \  }}d|z  }|j                  |t	        |«      f«       |j                  |«       Œ9 t	        |«      |fS )Núhtml.parserÚtablez___TBL_%d___)r   Úfind_allÚ	enumerateÚappendÚstrÚreplace_with)Úhtml_strÚtbl_soupÚtablesÚreplacementsÚiÚtbÚkeys          ú)/root/gov_crawler/crawl_yanshougs_sbys.pyÚextract_table_tagsr      sx   € Ü˜X }Ó5€HØ×Ñ˜wÓ'€FØ€LÜ˜6Ó"ò ‰ˆˆ2Ø˜qÑ ˆØ×Ñ˜S¤# b£'˜NÔ+Ø
�‰˜Õðô ˆx‹=˜,Ð&Ð&ó    c                 ó¦   — t        j                  d| t         j                  «      ryd| v ryt        j                  d|t         j                  «      ryy)Nz,\.(docx?|pdf|pptx?|xlsx?|jpg|png|gif)(\$|\?)Tz
/download/z\.(pdf|doc|docx|xlsx?|pptx?)F)ÚreÚsearchÚ
IGNORECASE)ÚhrefÚtexts     r   Úis_attachment_linkr        s@   € Ü	‡y�yÐ@À$ÌÏÉÔVØØ�tÑØÜ	‡y�yÐ0°$¼¿¹ÔFØØr   c                 óÐ   — 	 t        j                  | t        d¬«      }||_        |j                  S # t
        $ r+}t        d| ›d|›�t        j                  ¬«       Y d }~y d }~ww xY w)Né   )ÚheadersÚtimeoutz  FETCH ERROR z: ©Úfile)	ÚrequestsÚgetÚHEADERSÚencodingr   Ú	ExceptionÚprintÚsysÚstderr)Úurlr*   ÚrÚes       r   Úfetchr2   )   sO   € ðÜ�L‰L˜¤g°rÔ:ˆØˆŒ
Ø�v‰vˆøÜò Ýª©QÐ/´c·j±jÕAÜûðús   ‚.1 ±	A%º!A Á A%c                 ó\  — g }t        | d«      }|j                  d«      }|dd  D �]  }|j                  d«      }t        |«      dk\  sŒ$|d   j	                  d«      }|sŒ;|j                  d«      r|d   j                  «       nd}|sŒd|j                  d	¬
«      }|rt        |«      dk  r|d   j                  d	¬
«      }t        |«      dk\  r|d   j                  d	¬
«      n|d   j                  d	¬
«      }	|j                  d«      r|nt        |z   }
|j                  |
||	dœ«       �Œ |S )NÚlxmlztable tré   Útdé   Úar   Ú T©Ústripr   é   é   Úhttp)r/   ÚtitleÚdate)r   Úselectr   ÚlenÚfindr(   r;   Úget_textÚ
startswithÚDOMAINr   )ÚhtmlÚitemsÚsoupÚrowsÚrowÚcellsÚa2r   r?   r@   Úfull_urls              r   Úparse_list_itemsrO   2   s'  € Ø€EÜ˜˜vÓ&€DØ�;‰;�zÓ"€DØ�A�Bˆxó JˆØ—‘˜TÓ"ˆÜˆu‹:˜‹?Ø�q‘—‘˜sÓ#ˆBÙØØ)+¯©°¬�2�f‘:×#Ñ#Ô%¸RˆDÙØØ—K‘K d�KÓ+ˆEÙœC ›J¨šNØ˜a™×)Ñ)°Ð)Ó5�Ü47¸³JÀ!²O�5˜‘8×$Ñ$¨4Ð$Ô0ÈÈqÉ×IZÑIZÐaeÐIZÓIfˆDØ#Ÿ™¨vÔ6‘t¼FÀT¹MˆHØ�L‰L °EÀ4ÑHÖIðJð €Lr   c                 ón  — t        | «      }|sddg |fS t        |d«      }|}|j                  d«      }|r|j                  d¬«      }|r|}d}|j                  d«      }|rGt	        j
                  d|j                  «       «      }	|	r!|	j                  d«      j                  d	d
«      }|s9t	        j
                  d|«      }	|	r!|	j                  d«      j                  d	d
«      }|j                  d«      }
d}g }|
�r|
j                  dd¬«      D ]”  }|d   j                  «       }|j                  d¬«      }t        ||«      sŒ5|xs |j                  d	«      d   }|j                  d«      r|nt        |z   }|j                  ||dœ«       |j                  d|›d|›d�«       Œ– t!        |
«      }t#        |«      \  }}t        |d«      }|j                  ddg«      D ]  }|j%                  «        Œ |j                  g d¢«      D ]  }|j'                  «        Œ |j                  d«      D ]$  }|j)                  dd«       |j'                  «        Œ& |j                  d«      D ]$  }|j)                  dd«       |j'                  «        Œ& |j                  d«      D ]  }|j                  d«       Œ |j                  dd¬ «      }t	        j*                  d!d|«      j                  «       }|D ]  \  }}|j                  |d|z   dz   «      }Œ |rt-        |j                  «       «      d"k  r	d#| ›d$|›d%�}||||fS )&Nr9   r4   zdiv.dir_c_titleTr:   zdiv.dir_c_timez(\d{4}[-/]\d{2}[-/]\d{2})r5   ú/ú-zdiv.dir_c_contentr8   )r   r   éÿÿÿÿr>   )r/   Únameú[z](ú)r	   ÚscriptÚstyle)ÚspanÚfontÚbÚstrongr   ÚemÚuÚpr   z

Údivú
ÚbrF)Ú	separatorr;   z\n{3,}é   z<p><a href="z">z</a></p>)r2   r   Ú
select_onerD   r   r   ÚgroupÚreplacer   r;   r    ÚsplitrE   rF   r   r   r   r   Ú	decomposeÚunwrapÚinsertÚsubrB   )r/   Útitle_from_listrG   rI   Ú
full_titleÚdtÚtÚpub_dateÚdiÚmÚbodyÚcontent_htmlÚattachmentsÚa_tagÚhÚtxtÚfnameÚ
attach_urlÚ	body_htmlÚtable_markersÚ	body_soupÚtagr_   Údrb   r   Útbl_htmls                              r   Úget_contentr‚   G   s  € Ü�‹:€DÙØ�2�r˜?Ð*Ð*Ü˜˜vÓ&€DØ €JØ	�‰Ð*Ó	+€BÙ	Ø�K‰K˜dˆKÓ#ˆÙØˆJØ€HØ	�‰Ð)Ó	*€BÙ	Ü�I‰IÐ2°B·K±K³MÓBˆÙØ—w‘w˜q“z×)Ñ)¨#¨sÓ3ˆHÙÜ�I‰IÐ2°DÓ9ˆÙØ—w‘w˜q“z×)Ñ)¨#¨sÓ3ˆHØ�?‰?Ð.Ó/€DØ€LØ€KÚØ—]‘] 3¨T�]Ó2ò 	EˆEØ�f‘×#Ñ#Ó%ˆAØ—.‘. t�.Ó,ˆCÜ! ! SÕ)ØÒ/˜qŸw™w s›|¨BÑ/�Ø"#§,¡,¨vÔ"6™Q¼FÀQ¹J�
Ø×"Ñ"¨:¸uÑ#EÔFØ×"Ò"²º
Ð#CÕDð	Eô ˜“Iˆ	Ü#5°iÓ#@Ñ ˆ	�=Ü! )¨]Ó;ˆ	Ø×%Ñ% x°Ð&9Ó:ò 	ˆCØ�M‰M�Oð	à×%Ñ%Ò&UÓVò 	ˆCØ�J‰J�Lð	à×#Ñ# CÓ(ò 	ˆAØ�H‰H�Q˜ÔØ�H‰H�Jð	ð ×#Ñ# EÓ*ò 	ˆAØ�H‰H�Q˜ÔØ�H‰H�Jð	ð ×$Ñ$ TÓ*ò 	"ˆBØ�O‰O˜DÕ!ð	"à ×)Ñ)°B¸eÐ)ÓDˆÜ—v‘v˜i¨°Ó>×DÑDÓFˆØ*ò 	Q‰MˆC�Ø'×/Ñ/°°V¸hÑ5FÈÑ5OÓP‰Lð	Qáœ3˜|×1Ñ1Ó3Ó4°rÒ9øÚ7:ºJÐGˆØ˜ ;°
Ð:Ð:r   c                  óš  — dd l } | j                  d¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	t
        d d
¬«       |j                  ddd¬«       dd l}t        |j                  «      dkD  r5|j                  d   j                  «       rt        |j                  d   «      nd }|�1t        dt        |«      z   «       |j                  j                  «        |j                  «       }|j                  }|j                  }d|z  }dd l}|j#                  t$        «      }	|	j'                  d«       |	j)                  «       }
|
j'                  d|f«       |
j+                  «       d   }|j,                  rt.        }n|j0                  �|j0                  }nt2        }t        d||||fz  t        j4                  ¬«       d}t7        d|dz   «      D �]i  }d||fz  }t9        |«      }|st        d|z  t        j4                  ¬«       Œ7t;        |«      }|s!t        d|z  t        j4                  ¬«        �nt        d|t        |«      fz  t        j4                  ¬«       |D ]Â  }|
j'                  d|d   |f«       |
j+                  «       rŒ+t=        |d   |d   «      \  }}}}|d   xs |}	 |
j'                  d ||d   |d d! ||d d" |d   d#t?        j@                  |d$¬%«      f«       |dz  }t        d&|d d' |t        |«      t        |«      fz  t        j4                  ¬«       ŒÄ tE        jF                  d)«       �Œl |	jI                  «        t        d*|z  t        j4                  ¬«       |	jK                  «        y # tB        $ r)}t        d(|z  t        j4                  ¬«       Y d }~�ŒId }~ww xY w)+Nr   u   è‰ºå·¥çˆ‡ä¸­è¯­æ³¨ç‰ˆçˆ±æ¸�)Údescriptionz--idu   æ �ç›®ID (é»˜è®¤2=æ°´ä¿�éªŒæ”¶))ÚdefaultÚhelpz--nameu   ç³»ç»‡å��ç§°z--pagesu   çˆ±å�˜é¡µæ�± (é»˜è®¤5))Útyper…   r†   z--fullÚ
store_trueu   å…¨é‡�çˆ±å�–å…¨éƒ¨é¡µ)Úactionr†   r5   rS   z[AutoPg] max_pages=z.https://www.yanshougs.com/publicity_list?id=%szPRAGMA journal_mode=WALz.SELECT COUNT(*) FROM gov_raw WHERE site_name=?u3   æ �ç›®ID=%s ç­‰çš¹=%s: å·²æœ‰ %d æ�¡, çˆ±å�– %d é¡µr%   z
%s&page=%du     ç¬¬%dé¡µ èŽ·å�–å¤±è´¥u     ç¬¬%dé¡µ æ— æ�¡é›†å­˜u     ç¬¬%dé¡µ: %d æ�¡z7SELECT id FROM gov_raw WHERE page_url=? AND site_name=?r/   r?   r@   z˜INSERT INTO gov_raw (site_name, page_url, title, content, publish_date, source_url, status, attachments)
                       VALUES (?,?,?,?,?,?,?,?)iô  rd   ÚsyncedF)Úensure_asciiz     + %s (%s) body:%dB attach:%dé2   u       ! å…¥åº“å¤±è´¥: %sg333333Ó?u   
å®Œæˆ”! æ–°å¢ž %d æ�¡)&ÚargparseÚArgumentParserÚadd_argumentÚ
DEFAULT_IDÚDEFAULT_NAMEÚintr-   rB   ÚargvÚisdigitr,   r   ÚpopÚ
parse_argsÚidrT   Úsqlite3Úconnectr   ÚexecuteÚcursorÚfetchoneÚfullÚMAX_TOTAL_PAGESÚpagesÚDEFAULT_PAGESr.   Úranger2   rO   r‚   ÚjsonÚdumpsr+   ÚtimeÚsleepÚcommitÚclose)r�   ÚparserÚ_SYS2Ú_MAX_PGÚargsÚcol_idÚ	site_nameÚapi_baser˜   ÚconnÚcÚexistingÚ	max_pagesÚall_newÚpgÚpage_urlrG   rH   ÚitÚcontentrq   rv   rn   r@   r1   s                            r   Úmainr¸      s~  € ÛØ×$Ñ$Ð1NÐ$ÓO€FØ
×Ñ˜¬
Ð9ZÐÔ[Ø
×Ñ˜¬,¸^ÐÔLØ
×Ñ˜	¬°TÐ@XÐÔYØ
×Ñ˜¨Ð<SÐÔTãÜ%(¨¯©£_°qÒ%8¸U¿Z¹ZÈ¹^×=SÑ=SÔ=UŒc�%—*‘*˜R‘.Ô!Ð[_€GØÐÜÐ#¤c¨'£lÑ2Ô3Ø�
‰
�‰ÔØ×ÑÓ€Dà�W‰W€FØ—	‘	€IØ?À&ÑH€HãØ�?‰?œ9Ó%€DØ‡L�LÐ*Ô+Ø�‰‹€Aà‡I�IÐ>ÀÀÔMØ�z‰z‹|˜A‰€Hà‡y‚yÜ#‰	Ø	�‰Ð	Ø—J‘J‰	ä!ˆ	ä	Ð
?À6È9ÐV^Ð`iÐBjÑ
jÔqt×q{Ñq{Õ|à€GÜ�A�y 1‘}Ó%ó ˆØ 8¨R .Ñ0ˆÜ�X‹ˆÙÜÐ+¨bÑ0´s·z±zÕBØÜ  Ó&ˆÙÜÐ+¨bÑ0´s·z±zÕBÚÜÐ" b¬#¨e«*Ð%5Ñ5¼C¿J¹JÕGØò 	EˆBØ�I‰IÐOÐRTÐUZÑR[Ð]fÐQgÔhØ�z‰zŒ|ØÜ9DÀRÈÁYÐPRÐSZÑP[Ó9\Ñ6ˆG�X˜{¨JØ�f‘:Ò) ˆDð
EØ—	‘	ð3à  5¡	¨:°d°sÐ+;¸WÀdÈ3ÈBÀiØ˜‘Y ¬$¯*©*°[ÈuÔ*UðWôð ˜1‘�ÜÐ8¸JÀsÈ¸OÈTÔSVÐW^ÓS_ÔadÐepÓaqÐ;rÑrÔy|÷  zDñ  zDö  Eð	Eô" 	�
‰
�3Žð9ð< 	‡K�K„MÜ	Ð
# gÑ
-´C·J±JÕ?ð 	‡J�J…Løô ò EÜÐ.°Ñ2¼¿¹×DÓDûðEús   ËA7NÎ	O
Î!OÏO
Ú__main__)r9   )zutf-8)Úosr-   r   r¤   r¢   r'   Úbs4r   Úgetenvr   r)   rF   r�   r‘   r    rž   r   r    r2   rO   r‚   r¸   Ú__name__© r   r   ú<module>r¿      s‡   ðã 	ð÷ )× (× (Ý àˆB�I‰I�kÐ#8Ó9€	ØÐWÐ
X€Ø	$€Ø€
Ø€Ø€Ø€ò'óóòò*6;òpHðT ˆzÒÙ…Fð r   