Ë
    C}jx  ã                   ó¼   — 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Zddl	m	Z	 dZ
dZdZ ej                  dd	«      Zd
ZdddœZd„ Zd„ Zd„ Zedk(  r e«        yy)u*   çˆ¬å�– sthjj.kaifeng.gov.cn - æ‰¹å¤�å…¬å‘Šé    N)ÚBeautifulSoup)Údatetimezhttp://sthjj.kaifeng.gov.cnu!   sthjj.kaifeng.gov.cn-æ‰¹å¤�å…¬å‘Šz
2023-06-16Ú	SEARCH_DBz/root/search.dbÚcpfggzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36zhttp://sthjj.kaifeng.gov.cn/)z
User-AgentÚRefererc                  óp  — t         › dt        › dt        › d�} t        j                  | t        d¬«      }d|_        t        j                  |j                  «      }g }|D ]Ì  }|j                  d«      xs |j                  dd	«      }t        j                  d
d	|«      j                  «       }|j                  dd	«      dd }|j                  dd«      }	 t        j                  |«      }|j                  dd	«      }	|	r|	j                  d«      s	t         |	z   }	|j                  ||	|dœ«       ŒÎ |S #  d	}	Y Œ;xY w)u'   ä»Ž articleList.json èŽ·å�–æ–‡ç« åˆ—è¡¨z
/kfssthjj/ú/z-articleList.jsoné   ©ÚheadersÚtimeoutúutf-8Ú	showTitleÚtitleÚ z<[^>]+>ÚpubDateNé
   Úurlsz{}ÚpcÚhttp)r   ÚurlÚpublish_date)ÚBASE_URLÚCHANNEL_CODEÚrequestsÚgetÚHEADERSÚencodingÚjsonÚloadsÚtextÚreÚsubÚstripÚ
startswithÚappend)
r   ÚrespÚdataÚitemsÚitemr   Úpub_dater   Úurl_dataÚ
detail_urls
             ú"/root/gov_crawler/crawl_kaifeng.pyÚfetch_article_listr/      s&  € äˆJ�j¤ ¨a´¨~Ð=NÐ
O€CÜ�<‰<˜¤W°bÔ9€DØ€D„MÜ�:‰:�d—i‘iÓ €DØ€EØò ˆØ—‘˜Ó%Ò>¨¯©°'¸2Ó)>ˆä—‘�z 2 uÓ-×3Ñ3Ó5ˆà—8‘8˜I rÓ*¨3¨BÐ/ˆà�x‰x˜ Ó%ˆð	Ü—z‘z $Ó'ˆHØ!Ÿ™ d¨BÓ/ˆJñ ˜j×3Ñ3°FÔ;Ü! JÑ.ˆJà�‰ØØØ$ñ
õ 	ð#ð, €Løð	ØŠJús   Ã'D/Ä/D5c                 óê  — t        j                  | t        d¬«      }d|_        t	        |j
                  d«      }g }|j                  d«      }|rc|j                  d«      D ]5  }|j                  dd«      }|sŒ|j                  d	«      rŒ*t        |z   |d<   Œ7 |j                  t        |«      «       |s-|j                  d
«      }|r|j                  t        |«      «       |rdj                  |«      S y)u%   èŽ·å�–è¯¦æƒ…é¡µçš„æ­£æ–‡HTML + é™„ä»¶r
   r   r   zhtml.parserzdiv.article-content.downmainboxÚaÚhrefr   r   zdiv.show_con)r   r   r   r   r   r!   Ú
select_oneÚfind_allr%   r   r&   ÚstrÚjoin)r   r'   ÚsoupÚcontent_partsÚdivr1   r2   s          r.   Ú
get_detailr:   6   sØ   € ä�<‰<˜¤W°bÔ9€DØ€D„MÜ˜Ÿ™ MÓ2€Dà€Mð �/‰/Ð;Ó
<€CÙ
à—‘˜cÓ"ò 	,ˆAØ—5‘5˜ Ó$ˆDÚ˜DŸO™O¨FÕ3Ü$ t™O��&’	ð	,ð 	×ÑœS ›XÔ&ñ Ø�o‰o˜nÓ-ˆÙØ× Ñ ¤ S£Ô*áØ�w‰w�}Ó%Ð%Øó    c            	      ó  — t        j                  t        d¬«      } | 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t        d|d   d d › �«       |dz  }ŒJ|j	                  d|d   f«       |j                  «       r|dz  }Œvt        |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 )Né<   )r   ad  
        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   u       è·³è¿‡ï¼ˆæ— URLï¼‰: r   r
   é   z)SELECT id FROM gov_raw WHERE page_url = ?u       è­¦å‘Š: ç©ºæ­£æ–‡ zhINSERT OR IGNORE INTO gov_raw (title, page_url, content, publish_date, site_name) VALUES (?, ?, ?, ?, ?)u   å®Œæˆ�: æ–°å¢ž u    æ�¡, è·³è¿‡ )Úsqlite3ÚconnectÚDB_PATHÚcursorÚexecuteÚcommitÚprintr/   ÚlenÚCUTOFF_DATEÚfetchoner:   Ú	SITE_NAMEÚrowcountÚclose)ÚconnÚcr)   Útotal_addedÚtotal_skippedr*   ÚpubÚcontents           r.   ÚcrawlrR   R   s¢  € Ü�?‰?œ7¨BÔ/€DØ�‰‹€Aà‡I�Ið ô 	ð 	‡K�K„Mä	Ð
!Ô"ÜÓ €EÜ	ˆD”�U“�˜DÐ
!Ô"à€KØ€Màò ˆØ�>Ñ"ˆÙ�3œÒ$Ü�O¤K =°	¸#¸¸jÐIÔJÙà�EŠ{ÜÐ,¨T°'©]¸3¸BÐ-?Ð,@ÐAÔBØ˜QÑˆMØà	�	‰	Ð=ÀÀUÁ¸~ÔNØ�:‰:Œ<Ø˜QÑˆMØä˜T %™[Ó)ˆÙÜÐ*¨4°©=¸¸"Ð+=Ð*>Ð?Ô@Ø˜QÑˆMØà	�	‰	ØvØ�'‰]˜D ™K¨°#´yÐAô	
ð �:‰:˜Š>Ø˜1ÑˆKØ�‰�ð9ð< 	‡J�J„LÜ	ˆO˜K˜=¨°m°_ÀDÐ
IÕJr;   Ú__main__)Ú__doc__r   Úbs4r   r?   Úosr"   r   Úsysr   r   rI   rG   ÚgetenvrA   r   r   r/   r:   rR   Ú__name__© r;   r.   ú<module>r[      s|   ðá 0Û Ý Û Û 	Û 	Û Û 
Ý à(€Ø/€	Ø€Ø
ˆ"�)‰)�KÐ!2Ó
3€Ø€ð DØ-ñ€ò
ò>ò88Kðt ˆzÒÙ	…Gð r;   