Ë
    ¸¬uj  ã                   ó²   — 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mZ dZ	dZ
dZ ej                  dd	«      Zd
ZddiZd„ Zd„ Zd„ Zedk(  r e«        yy)u%   çˆ¬å�– yw.gov.cn - å»ºè®¾é¡¹ç›®çŽ¯è¯„é    N)ÚBeautifulSoup)Údatetimezhttps://www.yw.gov.cnu   yw.gov.cn-å»ºè®¾é¡¹ç›®çŽ¯è¯„z
2023-06-16Ú	SEARCH_DBz/root/search.dbÚ
1229137186z
User-AgentzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36c                  ó&  — t         › d�} ddt        dddddœ}t        j                  | |t        d	¬
«      }|j                  «       }|d   d   }t        |d«      }g }|j                  d«      D ]¢  }|j                  dd¬«      }|sŒ|j                  dd«      }	|	r|	j                  d«      s	t         |	z   }	|j                  dd«      j                  «       }
|j                  d«      }|r|j                  d¬«      nd}|j                  |
|	|dœ«       Œ¤ |S )u    ä»Ž JPAAS API èŽ·å�–æ–‡ç« åˆ—è¡¨z7/api-gateway/jpaas-publish-server/front/page/build/unitÚbulidstaticÚ3549u   æ”¿åºœä¿¡æ�¯å…¬å¼€åˆ—è¡¨ÚzfHuDn7pjzPV0dB1wLhu9ÚcolumnÚ15)Ú	parseTypeÚwebIdÚpageIdÚtagIdÚtplSetIdÚpageTypeÚrowsé   )ÚparamsÚheadersÚtimeoutÚdataÚhtmlúhtml.parserÚliÚaÚbt_link)Úclass_ÚhrefÚ ÚhttpÚtitleÚspanT)Ústrip)r"   ÚurlÚpublish_date)ÚBASE_URLÚCOL_IDÚrequestsÚgetÚHEADERSÚjsonr   ÚselectÚfindÚ
startswithr$   Úget_textÚappend)r%   r   Úrespr   r   ÚsoupÚitemsr   r   r   r"   r#   Úpub_dates                ú/root/gov_crawler/crawl_yw.pyÚ
fetch_listr7      s  € äˆJÐMÐ
N€Cà"¨V¼vØCØ+Ø dñ	€Fô �<‰<˜ F´GÀRÔH€DØ�9‰9‹;€DØ�‰<˜Ñ€DÜ˜˜}Ó-€DØ€EØ�k‰k˜$Óò 
NˆØ�G‰G�C 	ˆGÓ*ˆÙØØ�u‰u�V˜RÓ ˆÙ˜Ÿ™¨Ô/Ü˜d‘?ˆDØ—‘�g˜rÓ"×(Ñ(Ó*ˆØ�w‰w�v‹ˆÙ04�4—=‘= t�=Ô,¸"ˆØ�‰˜u¨TÀ8ÑLÕMð
Nð €Ló    c                 óØ  — t        j                  | t        d¬«      }d|_        t	        |j
                  d«      }g }|j                  d«      }|r‰|j                  d«      D ]  }|j                  «        Œ |j                  d«      D ]5  }|j                  dd	«      }|sŒ|j                  d
«      rŒ*t        |z   |d<   Œ7 |j                  t        |«      «       |rd	j                  |«      S y	)u   èŽ·å�–è¯¦æƒ…é¡µçš„æ­£æ–‡HTMLr   )r   r   zutf-8r   zdiv.main_sectionzTul.artic_key, div.main_title, div.artic_kopen, div.artic_tother, div.linke, div.yybbr   r   r    r!   )r)   r*   r+   Úencodingr   ÚtextÚ
select_oner-   Ú	decomposeÚfind_allr/   r'   r1   ÚstrÚjoin)r%   r2   r3   Úcontent_partsÚcontent_divÚtagr   r   s           r6   Ú
get_detailrD   0   sÙ   € ä�<‰<˜¤W°bÔ9€DØ€D„MÜ˜Ÿ™ MÓ2€Dð €MØ—/‘/Ð"4Ó5€KÙà×%Ñ%Ð&|Ó}ò 	ˆCØ�M‰M�Oð	ð ×%Ñ% cÓ*ò 	,ˆAØ—5‘5˜ Ó$ˆDÚ˜DŸO™O¨FÕ3Ü$ t™O��&’	ð	,ð 	×ÑœS Ó-Ô.áØ�w‰w�}Ó%Ð%Ør8   c            	      óè  — t        j                  t        «      } | j                  «       }|j	                  d«       | j                  «        t        d«       t        «       }t        dt        |«      › d�«       d}d}|D ]Ð  }|d   }|r!|t        k  rt        dt        › d|› d	�«        n¨|d
   s|dz  }Œ6|j	                  d|d
   f«       |j                  «       r|dz  }Œbt        |d
   «      }|st        d|d   d d › �«       |dz  }ŒŒ|j	                  d|d   |d
   ||t        f«       |j                  dkD  r|dz  }| j                  «        ŒÒ | j                  «        t        d|› d|› d�«       y )Nad  
        CREATE TABLE IF NOT EXISTS gov_raw (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            title TEXT,
            page_url TEXT UNIQUE,
            content TEXT,
            publish_date TEXT,
            site_name TEXT DEFAULT '',
            crawl_time TEXT DEFAULT (datetime('now', '+8 hours')),
            similar TEXT
        )
    u   èŽ·å�–æ–‡ç« åˆ—è¡¨...u   å…± u    æ�¡r   r&   u     æˆªæ­¢æ—¥æœŸ u	    (å½“å‰� u
   )ï¼Œè·³è¿‡r%   é   z)SELECT id FROM gov_raw WHERE page_url = ?u       è­¦å‘Š: ç©ºæ­£æ–‡ r"   r   zhINSERT OR IGNORE INTO gov_raw (title, page_url, content, publish_date, site_name) VALUES (?, ?, ?, ?, ?)u   å®Œæˆ�: æ–°å¢ž u    æ�¡, è·³è¿‡ )Úsqlite3ÚconnectÚDB_PATHÚcursorÚexecuteÚcommitÚprintr7   ÚlenÚCUTOFF_DATEÚfetchonerD   Ú	SITE_NAMEÚrowcountÚclose)ÚconnÚcr4   Útotal_addedÚtotal_skippedÚitemÚpubÚcontents           r6   Úcrawlr[   H   sƒ  € Ü�?‰?œ7Ó#€DØ�‰‹€Aà‡I�Ið ô 	ð 	‡K�K„Mä	Ð
!Ô"Ü‹L€EÜ	ˆD”�U“�˜DÐ
!Ô"à€KØ€Màò ˆØ�>Ñ"ˆÙ�3œÒ$Ü�O¤K =°	¸#¸¸jÐIÔJÙà�EŠ{Ø˜QÑˆMØà	�	‰	Ð=ÀÀUÁ¸~ÔNØ�:‰:Œ<Ø˜QÑˆMØä˜T %™[Ó)ˆÙÜÐ*¨4°©=¸¸"Ð+=Ð*>Ð?Ô@Ø˜QÑˆMØà	�	‰	ØvØ�'‰]˜D ™K¨°#´yÐAô	
ð �:‰:˜Š>Ø˜1ÑˆKØ�‰�ð7ð: 	‡J�J„LÜ	ˆO˜K˜=¨°m°_ÀDÐ
IÕJr8   Ú__main__)Ú__doc__r)   Úbs4r   rG   ÚosÚrer,   r   r'   rQ   rO   ÚgetenvrI   r(   r+   r7   rD   r[   Ú__name__© r8   r6   ú<module>rd      s{   ðá +Û Ý Û Û 	Û 	Û Ý à"€Ø*€	Ø€Ø
ˆ"�)‰)�KÐ!2Ó
3€Ø	€ð ð  Dð€òò6ò07Kðr ˆzÒÙ	…Gð r8   