Ë
    ©{j�=  ã                   ób  — d 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	 dZ
dZdZdZdZd	Zd
dde› de› d�dœZdZej$                  j'                  ej$                  j)                  ej$                  j+                  e«      «      d«      ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e!dk(  r e «        yy)uO  
é»„å†ˆå¸‚äººæ°‘æ”¿åºœ - æ”¿åŠ¡å…¬å¼€æ �ç›® (www.hg.gov.cn/zwgk/public/column/6636765?type=4&catId=7025318&action=list)
CMS: é¾™è®¯ç§‘æŠ€ lonsun æ”¿åŠ¡å…¬å¼€å¹³å�°
åˆ—è¡¨: AJAX POST /zwgk/site/label/8888
      data: labelName=publicInfoList, siteId=6792345, organId=6636765, pageSize=15,
            pageIndex=N, catId=7025318, type=4, action=list, length=50,
            dateFormat=yyyyå¹´MMæœˆddæ—¥, file=/c2/xxgk/publicInfoList_newest_zc01
      å“�åº” HTML: tr.xxgk_nav_con > td.info > a.title (href+title), td.fbrq æ—¥æœŸ
      pageCount:234 (ä»Žå“�åº” JSON æ��å�–)
è¯¦æƒ…: https://www.hg.gov.cn/zwgk/public/6636765/{contentId}.html
      æ­£æ–‡ div.wzcon.j-fontContent (ä¿�ç•™ <p>/<table>), meta ArticleTitle/PubDate
æ ·æœ¬: https://www.hg.gov.cn/zwgk/public/6636765/1766719.html
ç”¨æ³•: python3 crawl_hg_zf_hgzq.py [--pages=N | N] [--sync]
é    N)ÚBeautifulSoupu   é»„å†ˆå¸‚-å›žåº”å…³åˆ‡zhttps://www.hg.gov.cnz*https://www.hg.gov.cn/zwgk/site/label/8888Ú7025318Ú6636765Ú6792345zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36ÚXMLHttpRequestz)https://www.hg.gov.cn/zwgk/public/column/z?type=4&catId=z&action=list)z
User-AgentzX-Requested-WithÚRefererz
2023-01-01zquality_results.dbz/root/search.dbzwww.hg.gov.cnc                 ó0  — dd l }|j                  t        «      }|j                  d«       |j	                  «       }|j                  d«       d}| D ]Î  }	 |j                  d|j                  dd«      |j                  dd«      |j                  dd«      |j                  d	d«      |j                  d
d«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      f
«       ||j                  z  }ŒÐ |j                  «        |j                  «        t        d|› dt        | «      |z
  › �«       |S # t        $ r,}t        d|j                  dd«      › d|› �«       Y d }~�Œ@d }~ww xY w)Nr   úPRAGMA busy_timeout=300000aî  CREATE TABLE IF NOT EXISTS crawl_results (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        site_id INTEGER DEFAULT 0,
        title TEXT, url TEXT, content TEXT,
        publish_date TEXT, summary TEXT,
        domain TEXT, category TEXT DEFAULT '',
        content_hash TEXT, crawl_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        industry TEXT DEFAULT '', group_name TEXT DEFAULT '',
        script_name TEXT DEFAULT '', attachments TEXT DEFAULT '[]',
        UNIQUE(domain, url)
    )z¥INSERT OR IGNORE INTO crawl_results (domain, title, url, content, publish_date, summary, industry, group_name, script_name, attachments) VALUES (?,?,?,?,?,?,?,?,?,?)ÚdomainÚ ÚtitleÚurlÚcontentÚpub_dateÚsummaryÚindustryÚ
group_nameÚscript_nameÚattachmentsú[]z  [push] ERR ú: z[push_to_searchdb] new=z skip=)Úsqlite3ÚconnectÚ
QUALITY_DBÚexecuteÚcursorÚgetÚrowcountÚ	ExceptionÚprintÚcommitÚcloseÚlen)ÚrecordsÚbatch_labelr   ÚconnÚcurÚn_newÚrÚes           ú%/root/gov_crawler/crawl_hg_zf_hgzq.pyÚpush_to_searchdbr,   +   ss  € ÛØ�?‰?œ:Ó&€DØ‡L�LÐ-Ô.Ø
�+‰+‹-€CØ‡K�Kð 
	ô 

ð €EØò :ˆð
	:Ø�K‰Kð xØ—‘�x Ó$ a§e¡e¨G°RÓ&8¸!¿%¹%ÀÀrÓ:JØ—‘�y "Ó% q§u¡u¨Z¸Ó'<¸a¿e¹eÀIÈrÓ>RØ—‘�z 2Ó&¨¯©¨l¸BÓ(?Ø—‘�} bÓ)¨1¯5©5°ÀÓ+EðGôð �S—\‘\Ñ!‰Eð:ð 	‡K�K„MØ‡J�J„LÜ	Ð# E 7¨&´°W³¸eÑ1CÐ0DÐ
EÔFØ€Løô ò 	:Ü�M !§%¡%¨¨b£/Ð!2°"°Q°CÐ8×9Ò9ûð	:ús   ÁCE Å 	FÅ)!FÆFc                  ó´  — dd l } 	 | j                  t        «      }|j                  d«       |j                  dt        f«      j                  «       }|j                  «        |st        d«       y | j                  t        d¬«      }|j                  d«       |j                  d«       dx}}	 |D ]Â  }|\	  }}	}
}}}}}}|j                  d	|	f«      }|j                  «       }	 |rF|j                  d
||
xs dd d |xs d|xs dd d |xs d|xs d|xs d|xs d|d   f	«       |dz  }nH|j                  d||	|
xs dd d |xs d|xs dd d |xs d|xs d|xs d|xs dt        |	f«       |dz  }ŒÄ |j                  «        |j                  dt        f«       |j                  «        |j                  dt        f«      j                  «       d   }|j                  «        t        d|› d|› d|› d�«       y # t        $ r}t        d|› �«       Y d }~y d }~ww xY w# t        $ r}t        d|	› d|› �«       Y d }~�ŒŽd }~ww xY w# |j                  «        w xY w)Nr   r
   z�SELECT title, url, content, publish_date, summary, industry, group_name, script_name, attachments FROM crawl_results WHERE domain=? ORDER BY idz[sync] local read ERR: u   [sync] æœ¬åœ°æ²¡æœ‰æ•°æ�®i,  )ÚtimeoutzPRAGMA journal_mode=WALz'SELECT id FROM gov_raw WHERE page_url=?zƒUPDATE gov_raw SET title=?, content=?, publish_date=?, summary=?, industry=?, group_name=?, script_name=?, attachments=? WHERE id=?r   i ¡ r   é   z«INSERT INTO gov_raw (title, page_url, content, publish_date, summary, industry, group_name, script_name, attachments, site_name, source_url) VALUES (?,?,?,?,?,?,?,?,?,?,?)z  [sync] ERR r   z±INSERT INTO gov_search(rowid,title,site_name,summary) SELECT r.id,r.title,r.site_name,r.summary FROM gov_raw r WHERE r.id NOT IN (SELECT rowid FROM gov_search) AND r.site_name=?z.SELECT COUNT(*) FROM gov_raw WHERE site_name=?z[sync] OK updated=z
 inserted=u    DBå…±u   æ�¡)r   r   r   r   ÚDOMAINÚfetchallr"   r   r    Ú	SEARCH_DBÚfetchoneÚ	SITE_NAMEr!   )r   r&   Úrowsr*   ÚdstÚupdÚinsr)   r   r   r   r   r   ÚindÚgrpÚsnÚattr'   ÚrowÚtotals                       r+   Úsync_to_serverr?   N   s–  € Ûð
Ø�‰œzÓ*ˆØ�‰Ð1Ô2Ø�|‰|ð ^ÜˆIó
÷ ‰(‹*ð 	ð 	�
‰
Œñ ÜÐ)Ô*ØØ
�/‰/œ)¨Sˆ/Ó
1€CØ‡K�KÐ)Ô*Ø‡K�KÐ,Ô-Ø€M€Cˆ#ðØò 	2ˆAØHIÑEˆE�3˜ ¨7°C¸¸bÀ#Ø—+‘+ÐGÈ#ÈÓPˆCØ—,‘,“.ˆCð2ÙØ—K‘Kð ^Ø ¢¨B°°Ð 8¸(º.ÀbÈ7Ê=ÐVXÐZ^Ð[^ÐJ_Øš  C¢I¨2¨rªx°R¸ºÀÀcÈ!ÁfðNôOð ˜1‘H‘Cà—K‘Kð FØ  g¢m°°W°fÐ%=¸xº~È2ÐPWÒP]Ð[]Ð_cÐ`cÐOdØš  C¢I¨2¨rªx°R¸ºÀÄiÐQTðVôWð ˜1‘H�Cøð!	2ð& 	�
‰
ŒØ�‰ðQô ˆLô		ð
 	�
‰
ŒØ—‘ÐLÌyÈlÓ[×dÑdÓfÐghÑiˆà�	‰	ŒÜ	Ð˜s˜e :¨c¨U°&¸¸¸sÐ
CÕDøôQ ò ÜÐ'¨ sÐ+Ô,Üûðûô8 ò 2Ü˜ c U¨"¨Q¨CÐ0×1Ò1ûð2ûð 	�	‰	�úsP   †AG9 Â-4I Ã"BHÅ2A!I Ç9	HÈHÈHÈ	IÈ&H=È7I È=IÉI ÉIc                 ó°   — t        j                  dd| xs d«      } t        j                  dd| «      } t        j                  dd| «      j                  «       S )Nz$&middot;|&nbsp;|&#160;|\u200b|\ufeffr   u   ^[â€¢Â·]\s*z\s+ú )ÚreÚsubÚstrip)Úts    r+   Úclean_titlerF   ƒ   sG   € Ü
�‰Ð6¸¸AºGÀÓD€AÜ
�‰ˆ~˜r 1Ó%€AÜ�6‰6�&˜#˜qÓ!×'Ñ'Ó)Ð)ó    c                 óL  — t        j                  d| xs d«      }|r[t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      }}}|d›d|d›d|d›�S t        j                  d	| xs d«      }|r|j                  d
«      S y)Nu+   (\d{4})[å¹´\-/.](\d{1,2})[æœˆ\-/.](\d{1,2})r   r/   é   é   Ú04dú-Ú02dz(\d{4})-(\d{2})-(\d{2})r   )rB   ÚsearchÚintÚgroup)ÚsÚmÚyÚmoÚds        r+   Únormalize_daterV   ‰   s‘   € Ü
�	‰	Ð@À!Â'ÀrÓJ€AÙÜ�q—w‘w˜q“z“?¤C¨¯©°«
£O´S¸¿¹À»³_ˆqˆ2ˆØ�C�˜˜"˜S˜  1 S 'Ð*Ð*Ü
�	‰	Ð,¨aªg°2Ó6€AÙØ�w‰w�q‹zÐØrG   c                 óz  — dt         t        dt        | «      t        ddddddœ}	 t	        j
                  t        |t        d	¬
«      }|j                  «        d|_	        |j                  }g }d}t        j                  d|«      }|rt        |j!                  d«      «      }t#        |d«      }|j%                  dd¬«      D �]Š  }	|	j'                  dd¬«      }
|
sŒ|
d   j)                  «       }t        j                  d|«      }|sŒFt        |vrdt        › d�|vrŒ[t+        |
j-                  d¬«      «      }|sŒyd}|	j%                  d «      }|D ]4  }d!|j/                  d"«      xs g v sŒt1        |j-                  «       «      } n |s}|	j-                  «       }t        j                  d#|«      }|rUt        |j!                  d«      «      d$›d%t        |j!                  d&«      «      d'›d%t        |j!                  d(«      «      d'›�}|j3                  d)«      r|nt4        |j3                  d«      r|nd|z   z   }|j7                  |||d*œ«       �Œ� t9        «       }g }|D ]/  }|d+   |v rŒ|j;                  |d+   «       |j7                  |«       Œ1 |d|fS # t        $ r }t        d| › d|› �«       g ddfcY d}~S d}~ww xY w),u   POST AJAX æŽ¥å�£æ‹¿åˆ—è¡¨é¡µÚpublicInfoListÚ15Ú4ÚlistÚ50u   yyyyå¹´MMæœˆddæ—¥z#/c2/xxgk/publicInfoList_newest_zc01)Ú	labelNameÚsiteIdÚorganIdÚpageSizeÚ	pageIndexÚcatIdÚtypeÚactionÚlengthÚ
dateFormatÚfileé   )ÚdataÚheadersr.   úutf-8z
  [list] Pú ERR: Fr   NzpageCount:(\d+)r/   úhtml.parserÚtrÚxxgk_nav_con©Úclass_ÚaT©Úhrefrt   z/public/\d+/(\d+)\.html$z/public/ú/©rD   r   ÚtdÚfbrqÚclassu"   (\d{4})å¹´(\d{1,2})æœˆ(\d{1,2})æ—¥rK   rL   rI   rM   rJ   Úhttp)r   r   r   r   )ÚSITE_IDÚORGAN_IDÚstrÚCAT_IDÚrequestsÚpostÚAJAX_URLÚHEADERSÚraise_for_statusÚencodingÚtextr   r    rB   rN   rO   rP   r   Úfind_allÚfindrD   rF   Úget_textr   rV   Ú
startswithÚBASE_URLÚappendÚsetÚadd)Úpageri   r)   r…   r*   ÚitemsÚ
page_countrR   Úsouprn   rr   rt   Úm2r   r   Útdsrw   ÚtxtÚm3Úfull_urlÚseenÚuniqÚits                          r+   Ú
fetch_listrš   ”   s¸  € ð &ÜÜØÜ˜“YÜØØØØ)Ø5ñ€DðÜ�M‰Mœ(¨´wÈÔKˆØ	×ÑÔØˆŒ
Ø�v‰vˆð €EØ€JÜ
�	‰	Ð$ dÓ+€AÙÜ˜Ÿ™ ›“_ˆ
Ü˜˜}Ó-€DØ�m‰m˜D¨ˆmÓ8ó NˆØ�G‰G�C˜dˆGÓ#ˆÙØØ�‰y�‰Ó ˆÜ�Y‰YÐ2°DÓ9ˆÙØä˜4Ñ h¬x¨j¸Ð$:À$Ñ$FØÜ˜AŸJ™J¨T˜JÓ2Ó3ˆÙØØˆØ�k‰k˜$ÓˆØò 	ˆBØ˜"Ÿ&™& ›/Ò/¨RÒ0Ü)¨"¯+©+«-Ó8�Ùð	ñ Ø—+‘+“-ˆCÜ—‘Ð@À#ÓFˆBÙÜ! "§(¡(¨1£+Ó.¨sÐ3°1´S¸¿¹À!»Ó5EÀcÐ4JÈ!ÌCÐPR×PXÑPXÐYZÓP[ÓL\Ð]`ÐKaÐb�ØŸ?™?¨6Ô2‘4¼ÈDÏOÉOÐ\_ÔL`ÁDÐfiÐlpÑfpÑ8qˆØ�‰˜u¨XÀ8ÑLÖMð5Nô8 ‹5€DØ€DØò ˆØˆe‰9˜ÑØØ�‰��E‘ÔØ�‰�B�ð	ð
 ��zÐ!Ð!øôY ò Ü�
˜4˜&  q cÐ*Ô+Ø�5˜!ˆ|Õûðús   ¥AJ Ê	J:ÊJ5Ê/J:Ê5J:c           	      óø  ‡‡— 	 t        j                  | t        d¬«      }|j                  «        d|_        t        |j                  d«      }d}|j                  dd	d
i¬«      }|r|j                  d«      rt        |d   «      }|s,|j                  d«      }|rt        |j                  «       «      }|snt        j                  d|j                  t        j                  «      }|r=t        t        j                  dd|j!                  d«      j#                  «       «      «      }d}|j                  dd	di¬«      }|r'|j                  d«      r|d   j#                  «       d d }|s3t        j                  d|j                  «      }|r|j!                  d«      }|j%                  d«      xs$ |j%                  d«      xs |j%                  d«      }|€-|j'                  t        j(                  d«      ¬«      D ]  }	|	} n |€|d|g dœS g }
|j'                  dd¬«      D ]÷  }|d   j#                  «       }t        j                  d|t        j*                  «      sd|v sd |v sd!|j-                  «       v sŒV|j/                  d"«      r|n4|j/                  d#«      rd$|z   nt0        |j/                  d%«      r|nd%|z   z   Št        |j                  d¬&«      «      xs |j3                  d%«      d'   }t5        ˆfd(„|
D «       «      rŒä|
j7                  |‰d)œ«       Œù |j%                  d*«      xs$ |j%                  d+«      xs |j%                  d,«      }|rÐ|j'                  dd¬«      D ]º  }|d   j#                  «       }|sŒ|j/                  d"«      r|n4|j/                  d#«      rd$|z   nt0        |j/                  d%«      r|nd%|z   z   Št        |j                  d¬&«      «      xs |j3                  d%«      d'   }t5        ˆfd-„|
D «       «      rŒ§|
j7                  |‰d)œ«       Œ¼ |j'                  dd¬«      D ]g  }|d   j#                  «       }t        j                  d|t        j*                  «      s	d|v sd |v sŒD|j9                  d.«      }|sŒX|j;                  «        Œi |j'                  dd¬«      D ]“  }|d   j#                  «       }|j/                  d%«      s5|j/                  d/«      s$|j/                  d"«      rŒJ|j/                  d0«      rŒ\|j/                  d#«      rd$|z   nt0        |j/                  d%«      r|nd%|z   z   |d<   Œ• |j'                  d1«      D ]a  }|j                  d2d«      }|sŒ|j/                  d"«      rŒ*|j/                  d#«      rd$|z   nt0        |j/                  d%«      r|nd%|z   z   |d2<   Œc |j=                  d3«      D ]  }	|	j;                  «        Œ |j'                  t        j(                  d4«      ¬5«      D ]9  }	|	j9                  d.«      xs |	j9                  d6«      }|sŒ*|j;                  «        Œ; t?        |jA                  «       «      Št        j                  d7d‰t        j                  t        j*                  z  ¬8«      Št        j                  d9d‰t        j                  t        j*                  z  ¬8«      Št        j                  d:d;‰«      Št        j                  d<d‰«      Št        j                  d=d‰t        j                  ¬8«      Št        j                  d>d‰t        j                  ¬8«      Š|
rDt5        ˆfd?„|
D «       «      }|s.djC                  d@„ |
D «       «      }‰jE                  «       dAz   |z   ŠtG        t        j                  dBd‰«      j#                  «       «      }dC‰v }|dDk  r|s	|
s|d||
dœS |‰||
dœS # t        $ r}t        d| › d|› �«       Y d }~y d }~ww xY w)ENrh   )rj   r.   rk   rm   z  [detail] rl   r   ÚmetaÚnameÚArticleTitle)Úattrsr   Úh1z<title>(.*?)</title>u   _é»„å†ˆå¸‚äººæ°‘æ”¿åºœ$r/   ÚPubDateé
   u(   å�‘å¸ƒæ—¶é—´[ï¼š:]\s*(\d{4}-\d{2}-\d{2})z	div.wzconzdiv.j-fontContentzdiv.ls-article-infoz/wzcon|j-fontContent|article-content|TRS_UEDITORrp   ©r   r   r   r   rr   Trs   rt   z)\.(pdf|doc|docx|xls|xlsx|zip|rar|wps|7z)$z/attachment/z/fj/Údownloadrz   z//zhttps:ru   rv   éÿÿÿÿc              3   ó.   •K  — | ]  }|d    ‰k(  –— Œ y­w©r   N© ©Ú.0ÚxÚabs_urls     €r+   ú	<genexpr>zparse_detail.<locals>.<genexpr>  s   øè ø€ Ò9¨q�q˜‘x 7Õ*Ñ9ùó   ƒ)r�   r   zdiv.attachmentzdiv.attachmentszdiv.fjc              3   ó.   •K  — | ]  }|d    ‰k(  –— Œ y­wr§   r¨   r©   s     €r+   r­   zparse_detail.<locals>.<genexpr>  s   øè ø€ Ò=°1˜1˜U™8 wÕ.Ñ=ùr®   Úpz./Ú
javascriptÚimgÚsrcz`div.share, div.ewm, div.qrcode, div.jzgov-qrcode-div, div.app-share, div.print, div.wzy_positionu    æ‰«ä¸€æ‰«|åˆ†äº«åˆ°|æ‰“å�°æœ¬é¡µ)ÚstringÚdivz<script[^>]*>.*?</script>)Úflagsz<style[^>]*>.*?</style>z<p[^>]*>z<p>z
<p>\s*</p>z\s*<div id=\"docAppendix\".*$z\s*<div class=\"video\".*$c              3   ó,   •K  — | ]  }|d    ‰v –— Œ y­wr§   r¨   )rª   rr   Ú	body_htmls     €r+   r­   zparse_detail.<locals>.<genexpr>3  s   øè ø€ Ò:°�a˜‘h )Ô+Ñ:ùs   ƒc              3   ó`   K  — | ]&  }d |d   › dt        j                  |d   «      › d�–— Œ( y­w)z<p><a href="r   z">r�   z</a></p>N)Úhtml_modÚescape)rª   rr   s     r+   r­   zparse_detail.<locals>.<genexpr>5  s3   è ø€ ÒmÐcd ¨a°©h¨Z°r¼(¿/¹/È!ÈFÉ)Ó:TÐ9UÐU]Ô^Ñmùs   ‚,.ú
ú<[^>]+>z<imgé   )$r   r   r‚   rƒ   r„   r   r…   r   r    r‡   rF   rˆ   rB   rN   ÚSrC   rP   rD   Ú
select_oner†   ÚcompileÚIÚlowerr‰   rŠ   ÚsplitÚanyr‹   Úfind_parentÚ	decomposeÚselectr}   Údecode_contentsÚjoinÚrstripr#   )r   r)   r‘   r*   r   rR   Úhr   Úbody_elÚelÚattsrr   rt   r�   Úpage_attr°   r²   r³   Úhas_attÚatt_htmlÚtext_lenÚhas_imgr¬   r¸   s                         @@r+   Úparse_detailrÕ   ×   sƒ  ù€ ðÜ�L‰L˜¤g°rÔ:ˆØ	×ÑÔØˆŒ
Ü˜QŸV™V ]Ó3ˆð
 €EØ�	‰	�& ¨Ð 8ˆ	Ó9€AÙˆQ�U‰U�9ÔÜ˜A˜i™LÓ)ˆÙØ�I‰I�d‹OˆÙÜ §
¡
£Ó-ˆEÙÜ�I‰IÐ-¨q¯v©v´r·t±tÓ<ˆÙÜ¤§¡Ð'AÀ2ÀqÇwÁwÈqÃz×GWÑGWÓGYÓ ZÓ[ˆEà€HØ�	‰	�& ¨Ð 3ˆ	Ó4€AÙˆQ�U‰U�9ÔØ�Y‘<×%Ñ%Ó'¨¨Ð,ˆÙÜ�I‰IÐAÀ1Ç6Á6ÓJˆÙØ—w‘w˜q“zˆHà�o‰o˜kÓ*Ò|¨d¯o©oÐ>QÓ.RÒ|ÐVZ×VeÑVeÐf{ÓV|€GØ€Ø—-‘-¤r§z¡zÐ2cÓ'd�-Óeò 	ˆBØˆGÙð	ð €Ø¨2¸8ÐTVÑWÐWð €DØ×Ñ˜c¨ÐÓ-ò <ˆØ�‰y�‰Ó ˆÜ�9‰9ÐAÀ4ÌÏÉÔNÐR`ÐdhÑRhÐlrÐvzÑlzð  Ið  MQ÷  MWñ  MWó  MYò  YØ"Ÿo™o¨fÔ5‘dÈtÏÉÐ_cÔOd¸HÀtºOÔjrð  C÷  Nñ  Nð  ORô  SÑvzð  Y\ð  _cñ  Ycñ  kdˆGÜ˜qŸz™z°˜zÓ5Ó6ÒM¸$¿*¹*ÀS»/È"Ñ:MˆDÜÓ9°DÔ9Õ9Ø—‘ T°'Ñ:Õ;ð<ð �‰Ð/Ó0Òs°D·O±OÐDUÓ4VÒsÐZ^×ZiÑZiÐjrÓZs€HÙØ×"Ñ" 3¨TÐ"Ó2ò 	@ˆAØ�V‘9—?‘?Ó$ˆDÚØ"&§/¡/°&Ô"9™$ÐSW×SbÑSbÐcgÔShÀÈ4ÂÔnvð  CG÷  CRñ  CRð  SVô  CWÑz~ð  ]`ð  cgñ  ]gñ  oh�Ü" 1§:¡:°D :Ó#9Ó:ÒQ¸d¿j¹jÈ»oÈbÑ>Q�ÜÓ=¸Ô=Õ=Ø—K‘K¨°gÑ >Õ?ð	@ð ×Ñ˜c¨ÐÓ-ò ˆØ�‰y�‰Ó ˆÜ�9‰9ÐAÀ4ÌÏÉÔNÐR`ÐdhÑRhÐlrÐvzÒlzØ—‘˜cÓ"ˆAÚØ—‘•ðð ×Ñ˜c¨ÐÓ-ò BˆØ�‰y�‰Ó ˆØ�?‰?˜3Ô 4§?¡?°4Ô#8ÀÇÁÐQWÕAXÐae×apÑapÐq}Õa~Ø,0¯O©O¸DÔ,A˜ DšÄxÐ[_×[jÑ[jÐknÔ[oÑSWÐuxÐ{Ñuñ  HAˆAˆfŠIðBð ×Ñ Ó&ò ~ˆØ�g‰g�e˜RÓ ˆÚ�s—~‘~ fÕ-Ø,/¯N©N¸4Ô,@˜( Sš.ÄhÐY\×YgÑYgÐhkÔYlÑRUÐruÐx{Ñr{ÑF|ˆC�ŠJð~ð
 �n‰nÐó  Aò ˆØ
�‰�ðà×Ñ¤b§j¡jÐ1SÓ&TÐÓUò ˆØ�N‰N˜3ÓÒ8 2§>¡>°%Ó#8ˆÚØ�K‰K�Mðô
 �G×+Ñ+Ó-Ó.€IÜ—‘Ð3°R¸Ì"Ï$É$ÔQS×QUÑQUÉ+ÔV€IÜ—‘Ð1°2°yÌÏÉÌrÏtÉtÉÔT€IÜ—‘�{ E¨9Ó5€IÜ—‘�} b¨)Ó4€IÜ—‘Ð7¸¸YÌbÏdÉdÔS€IÜ—‘Ð4°b¸)Ì2Ï4É4ÔP€IáÜÓ:°TÔ:Ó:ˆÙØ—w‘wÑmÐhlÔmÓmˆHØ!×(Ñ(Ó*¨TÑ1°HÑ<ˆIä”2—6‘6˜* b¨)Ó4×:Ñ:Ó<Ó=€HØ˜	Ð!€GØ�!‚|™G©DØ¨2¸8ÐTXÑYÐYØ y¸hÐW[Ñ\Ð\øô ò Ü�˜C˜5  q cÐ*Ô+Üûðús   „A	_ ß	_9ß_4ß4_9c                  ó&  — dt         j                  v } d }t         j                  dd  D ]O  }|j                  d«      r 	 t        |j	                  dd«      d   «      }Œ4|j                  «       sŒEt        |«      }ŒQ t        d|› d| › �«       | rt        «        y g }d}t        dd«      D �]a  }|r||kD  r �nWt        |«      \  }}}|r|}t        d	|› d
t        |«      › d|› d�«       |s �n!|D �]	  }	|	d   r'|	d   t        k  rt        d|	d   › d|	d   d d › �«       Œ0t        |	d   «      }
|
€!t        d|	d   d d › �«       |	d   d|	d   g dœ}
t        t        |
d   xs |	d   |	d   |
d   |
d   xs |	d   t!        j"                  dd|
d   «      d d ddt$        j&                  j)                  t         j                  d   «      |
d   rt+        j,                  |
d   d¬«      nddœ}|j/                  |«       �Œ |s n|s�Œ[||k\  s�Œb n t        d t        |«      › d!|› d�«       |rXt1        |t$        j&                  j)                  t         j                  d   «      «       d"t         j                  v rt        «        y y y # t
        $ r Y �Œgw xY w)#Nz--sync-onlyr/   z--pages=ú=z[AutoPg] max_pages=z sync_only=r   iè  z[list] Pz: items=z (pageCount=ú)r   z  [cutoff] rA   r   é(   r   z	  [fail] é2   r   r£   r   r½   éÈ   u   æ¹–åŒ—r   F)Úensure_asciir   )r   Ú	site_namer   r   r   r   r   r   r   r   r   z[total] valid=z (total_pages=z--sync)ÚsysÚargvr‰   rO   rÄ   Ú
ValueErrorÚisdigitr    r?   Úrangerš   r#   ÚCUTOFFrÕ   r0   r4   rB   rC   ÚosÚpathÚbasenameÚjsonÚdumpsr‹   r,   )Ú	sync_onlyÚ	max_pagesrr   ÚvalidÚtotal_pagesÚpgr�   Úhas_nextr�   r™   ÚdetÚrecs               r+   Úmainrñ   ?  s´  € à¤§¡Ð)€IØ€IÜ�X‰X�a�bˆ\ò ˆØ�<‰<˜
Ô#ðÜ §¡¨¨Q£°Ñ 2Ó3‘	ð �Y‰Y�[Ü˜A›‰Iðô 
Ð 	˜{¨+°i°[Ð
AÔBÙÜÔØà€EØ€KÜ�A�t‹nó #ˆÙ˜˜išÚÜ&0°£nÑ#ˆˆx˜ÙØ$ˆKÜ�˜˜˜H¤S¨£Z L°¸Z¸LÈÐJÔKÙÚØó 	ˆBØ�*Š~ " Z¡.´6Ò"9Ü˜ B z¡NÐ#3°1°R¸±[ÀÀ"Ð5EÐ4FÐGÔHØÜ˜r %™yÓ)ˆCØˆ{Ü˜	 " W¡+¨c¨rÐ"2Ð!3Ð4Ô5Ø " 7¡¸ÈÈ:ÉÐgiÑj�ä Ü&Ø˜W™Ò4¨¨G©Ø˜%‘yØ˜y™>Ø 
™OÒ=¨r°*©~ÜŸ6™6 *¨b°#°i±.ÓAÀ$À3ÐGØØ&Ü!Ÿw™w×/Ñ/´·±¸±Ó<ØUXÐYfÒUgœtŸz™z¨#¨mÑ*<È5ÕQÐmqñˆCð �L‰L˜Öð+	ñ, Ùã˜2 Ô,ÙðG#ôH 
ˆNœ3˜u›:˜, n°[°MÀÐ
CÔDÙÜ˜¤§¡× 0Ñ 0´·±¸!±Ó =Ô>Ø”s—x‘xÑÜÕð  ð øôa ò Úðús   ½JÊ	JÊJÚ__main__)"Ú__doc__r   rB   rÞ   rä   rç   Úhtmlrº   Úbs4r   r4   rŠ   r�   r~   r|   r{   r‚   rã   rå   rÊ   ÚdirnameÚabspathÚ__file__r   r2   r0   r,   r?   rF   rV   rš   rÕ   rñ   Ú__name__r¨   rG   r+   ú<module>rú      sä   ðñó Û 	Û 
Û 	Û Û Ý à$€	Ø"€Ø7€Ø	€Ø€Ø
€ð DØ(Ø:¸8¸*ÀNÐSYÐRZÐZfÐgñ€ð
 
€à�W‰W�\‰\˜"Ÿ'™'Ÿ/™/¨"¯'©'¯/©/¸(Ó*CÓDÐFZÓ[€
Ø€	Ø	€ò òF2Eòj*òò@"òFe]òP;ð| ˆzÒÙ…Fð rG   