Ë
    ¸¬uj7  ã                   ó  — d Z ddlZddlZddlZddlZddlmZmZ  ej                  dd«      ZdZ	dZ
e
› d�Zd	Zd
diZ ej                  «        ed¬«      z
  j                  d«      Z ede› �«       d„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)uÆ   æ–°æµ¦åŒ–å­¦ - é¡¹ç›®å…¬ç¤º çˆ¬è™«
å¥•äº‘ä¼�æœ� CMSï¼Œé�™æ€�HTMLåˆ—è¡¨é¡µï¼ŒPDFé™„ä»¶ç›´é“¾
åˆ—è¡¨é¡µ /project.html ~ /project/17.htmlï¼Œ10æ�¡/é¡µï¼Œå…±162æ�¡
æ­£æ–‡æ ¼å¼�: æ ‡é¢˜ + å†…åµŒPDFé“¾æŽ¥
é    N)ÚdatetimeÚ	timedeltaÚ	SEARCH_DBz/root/search.dbu   spchemicals.com.cn-é¡¹ç›®å…¬ç¤ºzhttps://www.spchemicals.com.cnz/project.htmlé   z
User-AgentzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36iG  )Údaysz%Y-%m-%du   [info] æ—¥æœŸè¿‡æ»¤: >= c                 óà   — | dk(  rt         }nt        › d| › d�}	 t        j                  |t        d¬«      }d|_        |j                  S # t        $ r}t        d| › d|› �«       Y d	}~y
d	}~ww xY w)u   èŽ·å�–å�•é¡µåˆ—è¡¨HTMLé   z	/project/z.htmlé   )ÚheadersÚtimeoutzutf-8u   [error] ç¬¬u   é¡µè¯·æ±‚å¤±è´¥: NÚ )	ÚLIST_URLÚBASE_URLÚrequestsÚgetÚHEADERSÚencodingÚtextÚ	ExceptionÚprint)ÚpageÚurlÚrÚes       ú&/root/gov_crawler/crawl_spchemicals.pyÚ
fetch_pager      sp   € àˆq‚yÜ‰ä�
˜) D 6¨Ð/ˆðÜ�L‰L˜¤g°rÔ:ˆØˆŒ
Ø�v‰vˆøÜò Ü�˜D˜6Ð!2°1°#Ð6Ô7Üûðús   š.A	 Á		A-ÁA(Á(A-c                 ó\  — g }d}t        j                  || «      D ]Ž  }|j                  d«      j                  «       }|j                  d«      j                  «       }|j                  d«      j                  «       }|j	                  d«      r	t
        |z   }|j                  |||dœ«       Œ� |S )u   ä»ŽHTMLä¸­è§£æž�æ�¡ç›®åˆ—è¡¨z]<li[^>]*>\s*<a href="([^"]+)"[^>]*>\s*<p>([\s\S]*?)</p>\s*<span>([^<]+)</span>\s*</a>\s*</li>r	   é   é   ú/)ÚtitleÚdateÚpdf_url)ÚreÚfinditerÚgroupÚstripÚ
startswithr   Úappend)ÚhtmlÚitemsÚpatternÚmr#   r!   r"   s          r   Úparse_page_itemsr.   ,   sŸ   € à€Eð o€GÜ�[‰[˜ $Ó'ò IˆØ—'‘'˜!“*×"Ñ"Ó$ˆØ—‘˜“
× Ñ Ó"ˆØ�w‰w�q‹z×ÑÓ!ˆØ×Ñ˜cÔ"Ü Ñ(ˆGØ�‰˜u¨d¸wÑGÕHðIð €Ló    c                 ó   — d| › d|› d|› d�S )u&   æ­£æ–‡æ ¼å¼�: æ ‡é¢˜ + å†…åµŒPDFé“¾æŽ¥z<h3>u   </h3>
<p>PDFé™„ä»¶: <a href="z" target="_blank">z</a></p>© )r!   r#   s     r   Úmake_contentr2   <   s(   € à�E�7ð Ø�yÐ 2°7°)¸8ðGð Gr/   c                  óD  — dd l } | j                  t        «      }|j                  «       }|j	                  d«       d}d}d}t        dt        dz   «      D ]ü  }t        |«      }|sŒt        |«      }|st        d|› d�«       Œ.d}	d}
|D ]�  }|d   }|t        k  r|
dz  }
Œ|d   }|d   }|j	                  d	|f«       |j                  «       d   dkD  r|
dz  }
ŒPt        ||«      }	 |j	                  d
|||t        ||df«       |j                  dkD  r|	dz  }	Œ� |j!                  «        ||	z  }||
z  }t        d|› dt        › d|	› d|
› d|› d�«       Œþ |j#                  «        t        d|› d|› d|› �«       y # t        $ r}t        d|› �«       |dz  }Y d }~�Œd }~ww xY w)Nr   zPRAGMA journal_mode=WALr	   u
   [warn] ç¬¬u   é¡µæœªè§£æž�åˆ°æ�¡ç›®r"   r!   r#   z-SELECT COUNT(*) FROM gov_raw WHERE page_url=?z»
                    INSERT OR IGNORE INTO gov_raw (page_url, title, content, site_name, publish_date, summary, category)
                    VALUES (?, ?, ?, ?, ?, ?, ?)
                u   é¡¹ç›®å…¬ç¤ºu     [error] å…¥åº“å¤±è´¥: z[page r    z] +z new, z skipped, cumulative: z newu   
[å®Œæˆ�] æ–°æµ¦åŒ–å­¦: æ–°å¢ž u    æ�¡, è·³è¿‡ u    æ�¡, é”™è¯¯ )Úsqlite3ÚconnectÚDB_PATHÚcursorÚexecuteÚrangeÚTOTAL_PAGESr   r.   r   ÚCUTOFF_DATEÚfetchoner2   Ú	SITE_NAMEÚrowcountr   ÚcommitÚclose)r4   ÚconnÚcÚ	new_countÚ
skip_countÚ	err_countr   r*   r+   Úpage_newÚ	page_skipÚitemr"   r!   r#   Úcontentr   s                    r   ÚmainrJ   B   sô  € Ûà�?‰?œ7Ó#€DØ�‰‹€AØ‡I�IÐ'Ô(à€IØ€JØ€Iä�aœ q™Ó)ò ,pˆÜ˜$ÓˆÙØä  Ó&ˆÙÜ�J˜t˜fÐ$9Ð:Ô;ØàˆØˆ	Øò 	ˆDØ˜‘<ˆDØ”kÒ!Ø˜Q‘�	Øà˜‘MˆEØ˜9‘oˆGð �I‰IÐEÈÀzÔRØ�z‰z‹|˜A‰ Ò"Ø˜Q‘�	Øô # 5¨'Ó2ˆGð	Ø—	‘	ð ð ˜u g¬y¸$ÀÀ~ÐVôXð —:‘: ’>Ø ‘M�Høð1	ð: 	�‰ŒØ�XÑˆ	Ø�iÑˆ
Ü��t�f˜Aœk˜]¨#¨h¨Z°v¸i¸[ÐH^Ð_hÐ^iÐimÐnÕoðY,pð\ 	‡J�J„LÜ	Ð,¨Y¨K°}ÀZÀLÐP]Ð^gÐ]hÐ
iÕjøô ò ÜÐ0°°Ð4Ô5Ø˜Q‘–	ûðús   Ã%1E8Å8	FÆFÆFÚ__main__)Ú__doc__ÚosÚsysr$   r   r   r   Úgetenvr6   r=   r   r   r:   r   ÚnowÚstrftimer;   r   r   r.   r2   rJ   Ú__name__r1   r/   r   ú<module>rS      sº   ðñó 
Û 
Û 	Û ß (à
ˆ"�)‰)�KÐ!2Ó
3€Ø-€	Ø+€ØˆZ�}Ð%€Ø€ð ð  Dð€ð ˆx�|‰|‹~¡	¨uÔ 5Ñ5×?Ñ?À
ÓK€Ù Ð   Ð.Ô /òò ò Gò:kðz ˆzÒÙ…Fð r/   