Ë
    Í«£j¤G  ã            
       óT  — 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Z		 ddl
mZ ej                  j                  dd«      Zej                  j                  dd«      ZdZd	d
dddœZdddddœdddddœdœZdZ eej,                  «      D ]\  \  ZZedk(  r+edz    eej,                  «      k  rej,                  edz      ZŒ6ej5                  d«      sŒHej7                  dd«      d   ZŒ^ eevr6 ede›d eej=                  «       «      ›�d¬ «        ej>                  d«       ee   d!   Z d"Z!d#Z"ee   d$   Z#d%Z$ee   d&   Z%d'Z&d(d(d)d*ee   d+   d(d,d-d.d/œ	Z'd0Z(dZ) eej,                  «      D ]k  \  ZZej5                  d1«      r	  e*ej7                  dd«      d   «      Z)Œ4ed2k(  sŒ:edz    eej,                  «      k  sŒS	  e*ej,                  edz      «      Z)Œm e)dk\  re)ndZ,d3„ Z-d;d4„Z.d5„ Z/d6„ Z0d7„ Z1d8„ Z2d9„ Z3e4d:k(  r e0«        yy# e$ r dZY �Œêw xY w# e+$ r Y Œ°w xY w# e+$ r Y Œ»w xY w)<u|  
crawl_dongtai_hjsp.py - ä¸œå�°å¸‚ (www.dongtai.gov.cn)
https://www.dongtai.gov.cn/col/col7952/index.html (çŽ¯è¯„å…¬ç¤º)
https://www.dongtai.gov.cn/col/col33593/index.html (é‡�å¤§å»ºè®¾é¡¹ç›®)
CMS: Hanweb jpage dataproxy (GET)
åˆ—è¡¨: GET /module/web/jpage/dataproxy.jsp?page=N&col=1&appid=1&webid=49&path=/&columnid={cid}&sourceContentType=1&unitid=27566&webname=ä¸œå�°å¸‚äººæ°‘æ”¿åºœ&permissiontype=0
  å“�åº” XML <datastore><totalrecord>236</totalrecord>...<record><![CDATA[<li><a href="/art/2026/8/5/art_7952_ID.html">æ ‡é¢˜</a><span>08-05</span></li>]]></record>
è¯¦æƒ…: /art/YYYY/M/D/art_{cid}_ID.html, meta ArticleTitle/PubDate, æ­£æ–‡ div.detail_texts div.content
å�‘: åŠ é€Ÿä¹�(365cyd) WAF â€” è¯¦æƒ…è¯·æ±‚å¸¦ Referer å¿… 403, å¿…é¡»æ—  Referer è®¿é—®

æ �ç›® (--col):
  hjsp : å»ºè®¾é¡¹ç›®çŽ¯è¯„å…¬ç¤º columnid=7952 (total=236)
  zdjs : é‡�å¤§å»ºè®¾é¡¹ç›® columnid=33593 (total=45)
é    N)ÚBeautifulSoupÚDB_PATHz/mnt/data/search.dbÚ
JSONL_PATHÚ úutf-8zkMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zzh-CN,zh;q=0.9ÚXMLHttpRequest)z
User-AgentÚAcceptzAccept-LanguagezX-Requested-WithÚ7952u"   ä¸œå�°å¸‚-å»ºè®¾é¡¹ç›®çŽ¯è¯„å…¬ç¤ºu   çŽ¯è¯„å…¬ç¤ºz1https://www.dongtai.gov.cn/col/col7952/index.html)ÚcolumnidÚnameÚcatÚurlÚ33593u   ä¸œå�°å¸‚-é‡�å¤§å»ºè®¾é¡¹ç›®u   é‡�å¤§å»ºè®¾é¡¹ç›®z2https://www.dongtai.gov.cn/col/col33593/index.html)ÚhjspÚzdjsr   z--colé   z--col=ú=u   æœªçŸ¥æ �ç›® u
   , å�¯é€‰: T©Úflushr   u   æ±Ÿè‹�zcrawl_dongtai_hjsp.pyr   zhttps://www.dongtai.gov.cnr   z9https://www.dongtai.gov.cn/module/web/jpage/dataproxy.jspÚ1Ú49ú/r   Ú27566u   ä¸œå�°å¸‚äººæ°‘æ”¿åºœÚ0)	ÚcolÚappidÚwebidÚpathr   ÚsourceContentTypeÚunitidÚwebnameÚpermissiontypeé   z--pages=z--pagesc                 ó2  — | syt        j                  | «      } | j                  dd«      j                  dd«      j                  dd«      j                  dd«      } t        j                  dd| «      } t        j                  dd| «      } | j                  «       S )	Nr   u   â€‹u   â€Œu   â€�u   ï»¿u3   ^\s*(?:&middot;|Â·|\u00b7)?\s*(?:&nbsp;|\u00a0)?\s*ú\s+ú )Úhtml_libÚunescapeÚreplaceÚreÚsubÚstrip)Úts    úcrawl_dongtai_hjsp.pyÚclean_titler/   V   s‚   € ÙØÜ×Ñ˜!Ó€AØ	�	‰	�(˜BÓ×'Ñ'¨°"Ó5×=Ñ=¸hÈÓK×SÑSÐT\Ð^`Óa€AÜ
�‰ÐEÀrÈ1ÓM€AÜ
�‰ˆv�s˜AÓ€AØ�7‰7‹9Ðó    c                 ó^  — t        t        «      }|r||d<   d}t        d«      D ]Í  }	 ddl}ddl}|j                  |j                  j                  «       |j                  | ||d¬«      }|j                  dk(  rUt        |_        |j                  }	d|	v sd	|	v sd
|	v r.d|	vr*dt        |	«      z  }t        j                  d|dz  z   «       Œ¦|	c S d|j                  z  }t        j                  d«       ŒÏ t%        d| dd ›d|›�d¬«       y# t         $ r}
t#        |
«      dd }Y d}
~
ŒJd}
~
ww xY w)uQ   referer=None æ—¶ä¸�å¸¦ Referer å¤´ï¼ˆä¸œå�°åŠ é€Ÿä¹�è¦�æ±‚è¯¦æƒ…é¡µæ—  Refererï¼‰ÚRefererNé   r   F)ÚheadersÚtimeoutÚverifyéÈ   znotice-jiasuleu   è®¿é—®è¿‡äºŽé¢‘ç¹�u   è¯·ç¨�å€™å†�è¯•Údetail_textszjiasule challenge (%dB)zHTTP %séP   é   z  [fetch fail] éZ   z -> Tr   )ÚdictÚHEADERSÚrangeÚrequestsÚurllib3Údisable_warningsÚ
exceptionsÚInsecureRequestWarningÚgetÚstatus_codeÚENCÚencodingÚtextÚlenÚtimeÚsleepÚ	ExceptionÚstrÚprint)r   Úrefererr5   ÚhÚlast_errÚattemptr?   r@   ÚrÚtxtÚes              r.   ÚfetchrV   `   s-  € äŒW‹€AÙØˆˆ)‰Ø€HÜ˜“8ò ˆð	#ß$Ø×$Ñ$ W×%7Ñ%7×%NÑ%NÔOØ—‘˜S¨!°WÀU�ÓKˆAØ�}‰} Ò#Ü �”
Ø—f‘f�à$¨Ñ+Ð/CÀsÑ/JÐN_ÐcfÑNfÐlzð  CFñ  mFØ8¼3¸s»8ÑC�HÜ—J‘J˜q 7¨Q¡;™Ô/ØØ’
Ø  1§=¡=Ñ0ˆHô 	�
‰
�1�ð#õ$ 
 s¨3¨B¢x±Ð
:À$ÕGØøô	 ò 	#Ü˜1“v˜c˜r�{�Hûð	#ús$   ¨B!DÃ
DÃDÄ	D,ÄD'Ä'D,c           
      ó   ‡‡‡ ‡!— | sddg fS t        j                  dd| t         j                  ¬«      } t        j                  dd| t         j                  ¬«      } t        j                  dd| t         j                  t         j                  z  ¬«      } t        j                  dd| t         j                  t         j                  z  ¬«      } t        j                  dd| t         j                  ¬«      } t        j                  d	d| t         j                  t         j                  z  ¬«      } t        j                  d
d| «      } t        j                  dd| d¬«      } g Ši Š t        j                  dd| «      } t        j                  dd| «      } t        j                  dd| t         j                  ¬«      } t        j                  dd| «      } t        �r@	 t	        | d«      }|j                  dd¬«      D �]>  }|j                  d«      sG|j                  d«      s6t        j                  d|j                  dd«      t         j                  «      sŒ\|d   }|j                  d«      xs |}|j                  d¬«      xsW |j                  d«      xsD |j                  d«      xs1 t        j                  j                  |j                  d«      d   «      }t        j                  j                  ‰|«      }‰j!                  ||f«       dt#        ‰ «      z  }d |›d!|›d"�‰ |<   |j%                  |«       �ŒA |j                  d#«      D ]_  }	|	j                  d$«      xs |	j                  d«      xs d}
d%|
j'                  «       v sd&|
j'                  «       v sŒP|	j)                  «        Œa |j                  d'«      D �]@  }|j                  d#«      }|sŒ|j                  d¬«      rŒ+g }|D ]Ò  }	|	j                  d$«      xs |	j                  d«      xs d}
|
sŒ.t        j                  j                  ‰|
«      }|	j                  d(«      xs |	j                  d«      xs dj+                  «       xs5 t        j                  j                  |
j                  d«      d   «      xs d)}|j!                  d |›d!|›d"�«       ŒÔ |s�Œd*t#        ‰ «      z  }d+d,j-                  |«      z   d-z   ‰ |<   |j%                  |«       �ŒC |j                  d#«      D ]÷  }	|	j                  d$«      xs |	j                  d«      xs d}
|
rd%|
j'                  «       v rŒ@t        j                  j                  ‰|
«      }|	j                  d(«      xs |	j                  d«      xs dj+                  «       xs5 t        j                  j                  |
j                  d«      d   «      xs d)}d*t#        ‰ «      z  }d.|›d!|›d/�‰ |<   |	j%                  |«       Œù t/        |«      } ˆˆ ˆfd0„}t        j                  d1|| t         j                  t         j                  z  ¬«      } t        rÍ	 t	        | d«      }|j                  d«      D ]%  }d2D ]  }|j2                  j5                  |d «       Œ  Œ' |j                  d3«      D ]h  }|j                  d¬«      sD|j7                  d4«      s3|j7                  d#«      s"|j7                  d«      s|j)                  «        ŒY|j9                  «        Œj t/        |«      } g Š!ˆ!fd5„}t        j                  d6| t         j                  «      rdnd}t        j                  d7|| t         j                  t         j                  z  ¬«      } t        j                  d-d8| t         j                  ¬«      } t        j                  d9d:| t         j                  ¬«      } t        j                  d;d| t         j                  ¬«      } g }| j                  d<«      D �]¥  }|j+                  «       }|sŒt        j                  d=d|«      }t        j                  d>d|«      }|j;                  d?d«      j;                  d@dA«      }t        j                  dBdA|«      }t        j                  dCd|«      }t=        j>                  |«      }|j;                  dDdA«      j;                  dEdA«      }t        j                  dFd|«      }|sŒæ‰ jA                  «       D ]  \  }}|j;                  ||«      }Œ tC        ‰!«      D ]  \  }}|j;                  dG|z  |«      }Œ t        j                  dH|t         j                  «      s*t        j                  dI|t         j                  «      rdJ|z  }|j!                  |j+                  «       «       �Œ¨ d<j-                  |«      }‰ jA                  «       D ]  \  }}|j;                  ||«      }Œ tC        ‰!«      D ]  \  }}|j;                  dG|z  |«      }Œ t        j                  dKd|«      }t        j                  dLd|«      }t        j                  dMd|«      }t        j                  dNd|«      }t=        j>                  |«      }t        j                  dOd:|«      }t        j                  dPd<|«      }t        j                  dBdA|«      }tE        «       }g }|j                  d<«      D ]X  }t        j                  dQdt        j                  dCd|«      «      }|sŒ2||v rŒ7|jG                  |«       |j!                  |«       ŒZ d<j-                  |«      j+                  «       }||‰fS # t0        $ r Y �Œlw xY w# t0        $ r Y �Œjw xY w)RNr   r   z
<!--.*?-->)Úflagsz<meta[^>]*>z<script[^>]*>.*?</script>z<style[^>]*>.*?</style>z<!--\s*xxgktypeinfo\s*-->z(<div[^>]*class=\"?head\"?[^>]*>.*?</div>z(?m)^\s*xxgktypeinfo\s*$zxxgktypeinfo\s*r   )Úcountu   ã€�å­—å�·ï¼š[^ã€‘]*ã€‘u'   å�‘å¸ƒ(?:æ—¶é—´|æ—¥æœŸ)[:ï¼š][^<]{0,30}u'   <h3[^>]*>\s*å…³è�”é˜…è¯»[:ï¼š]?\s*</h3>u   (?m)^\s*å…³è�”é˜…è¯»[:ï¼š]?\s*$úhtml.parserÚaT)ÚhrefÚappendixzdata-appendixz&\.(pdf|docx?|xlsx?|zip|rar|wps|et|ofd)r\   Úoldsrc©r,   Ú_titleÚtitleú?z__ATTACH__%d__ú	<a href="ú" target="_blank">ú</a>ÚimgÚsrczfileTypeImages/icon_ÚfiletypeimagesÚpÚaltu   å›¾ç‰‡z__IMG__%d__z<p>z<br/>z</p>z<p><a href="z</a></p>c                 ó6  •— | j                  d«      }|j                  d«      ry| j                  d«      }t        j                  dd|«      }t	        j
                  |«      j                  «       }t        j                  dd|«      j                  «       }|s5t        j                  j                  |j                  d«      d   «      xs d	}t        j                  j                  ‰|«      }‰j                  ||f«       d
t        ‰«      z  }d|›d|›d�‰|<   |S )Nr   zjavascript:r   r:   ú<[^>]+>u   ^é™„ä»¶[:ï¼š]\s*rb   r   u   é™„ä»¶z__LINK__%d__rc   rd   re   )ÚgroupÚ
startswithr*   r+   r'   r(   r,   Úosr   ÚbasenameÚsplitÚurllibÚparseÚurljoinÚappendrI   )	Úmr\   ÚinnerrT   Úabs_urlÚkeyÚattachmentsÚlink_protectÚpage_urls	         €€€r.   Ú
_link_replz html_to_text.<locals>._link_repl¿   sç   ø€ Ø�w‰w�q‹zˆØ�?‰?˜=Ô)ØØ—‘˜“
ˆÜ�f‰f�Z  UÓ+ˆÜ×Ñ Ó$×*Ñ*Ó,ˆÜ�f‰fÐ(¨"¨cÓ2×8Ñ8Ó:ˆÙÜ—'‘'×"Ñ" 4§:¡:¨c£?°1Ñ#5Ó6ÒB¸(ˆCÜ—,‘,×&Ñ& x°Ó6ˆØ×Ñ˜G S˜>Ô*Øœs <Ó0Ñ0‰ÚELÊcÐRˆ�SÑØˆ
r0   z&<a\s[^>]*href="([^"]+)"[^>]*>(.*?)</a>)ÚstyleÚclassÚlangÚdirÚalignÚvalignÚwidthÚheightÚborderÚcellpaddingÚcellspacingÚdivÚtablec                 óf   •— ‰j                  | j                  d«      «       dt        ‰«      dz
  z  S )Nr   ú__TBL__%d__r   )ru   rm   rI   )rv   Útable_protects    €r.   Ú	_tbl_replzhtml_to_text.<locals>._tbl_replá   s.   ø€ Ø×Ñ˜QŸW™W Q›ZÔ(Ø¤ MÓ 2°QÑ 6Ñ7Ð7r0   z<table[^>]*>z<table[^>]*>.*?</table>z</p>

z	<br\s*/?>ú
z(</?(?:span|font|o:p|st1?:[a-z]+)\b[^>]*>z

z(?<=>)\s*[\r\n\t]+\s*z\s*[\r\n\t]+\s*(?=<)úú	r&   z	[ \t]{2,}rl   õ   Â z&nbsp;z[\s\u200b\u200c\u200d\ufeff]+rŒ   ú<p[ >]ú<a[ >]z	<p>%s</p>z__LINK__\d+__z__TBL__\d+__z__IMG__\d+__z__ATTACH__\d+__z[ \t]+\nz\n{3,}r%   )$r*   r+   ÚSÚIr   Úfind_allrD   ÚsearchÚget_textro   r   rp   rq   rr   rs   rt   ru   rI   Úreplace_withÚlowerÚ	decomposer,   ÚjoinrM   rL   ÚattrsÚpopÚfindÚunwrapr)   r'   r(   ÚitemsÚ	enumerateÚsetÚadd)"Úcontentr|   Ú_soupr[   r\   Ú	real_hrefrT   rx   ry   rf   rg   ri   ÚimgsÚsrcsr}   ÚtagÚattrÚdrŽ   Ú	has_tableÚpartsÚblockÚbÚplainÚkÚvÚiÚtblÚoutÚseenÚfinalrz   r{   r�   s"    `                             @@@r.   Úhtml_to_textrº   |   sè	  û€ ÙØ�1�bˆyÐÜ�f‰f�] B¨´r·t±tÔ<€GÜ�f‰f�^ R¨¼¿¹Ô=€GÜ�f‰fÐ1°2°wÄbÇdÁdÌRÏTÉTÁkÔR€GÜ�f‰fÐ/°°WÄBÇDÁDÌ2Ï4É4ÁKÔP€Gô �f‰fÐ1°2°wÄbÇdÁdÔK€GÜ�f‰fÐ@À"ÀgÔUW×UYÑUYÔ\^×\`Ñ\`ÑU`Ôa€GÜ�f‰fÐ0°"°gÓ>€GÜ�f‰fÐ'¨¨W¸AÔ>€Gà€KØ€Lä�f‰fÐ.°°GÓ<€GÜ�f‰fÐ?ÀÀWÓM€Gä�f‰fÐ?ÀÀWÔTV×TXÑTXÔY€GÜ�f‰fÐ7¸¸WÓE€Gæð)	Ü! '¨=Ó9ˆEØ—^‘^ C¨d�^Ó3ó 	(�Ø—5‘5˜Ô$¨¯©¨oÔ(>Ä"Ç)Á)ÐLuÐwx×w|Ñw|ð  ~Dð  FHó  xIô  KM÷  KOñ  KOõ  CPØ˜V™9�DØ !§¡ h£Ò 7°4�IØŸ*™*¨4˜*Ó0ò  C°A·E±E¸(³Oò  CÀqÇuÁuÈWÃ~ò  CÔY[×Y`ÑY`×YiÑYiÐjs×jyÑjyÐz}Ój~ð  @Añ  kBó  ZC�CÜ$Ÿl™l×2Ñ2°8¸YÓG�GØ×&Ñ&¨° ~Ô6Ø*¬S°Ó->Ñ>‘CÚQXÒZ]Ð(^�L Ñ%Ø—N‘N 3Ö'ð	(ð —~‘~ eÓ,ò $�Ø—w‘w˜u“~Ò@¨¯©°Ó):Ò@¸b�Ø)¨S¯Y©Y«[Ñ8Ð<LÐPS×PYÑPYÓP[Ò<[Ø—M‘M•Oð$ð —^‘^ CÓ(ó ,�Ø—z‘z %Ó(�Ú §
¡
° 
Õ 6Ø�DØ#ò `˜Ø!Ÿg™g e›nÒG°·±¸Ó0AÒGÀR˜ÚÜ&,§l¡l×&:Ñ&:¸8ÀSÓ&I˜GØ#&§7¡7¨5£>Ò#K°S·W±W¸WÓ5EÒ#KÈ×"RÑ"RÓ"Tò  #HÔXZ×X_ÑX_×XhÑXhÐil×irÑirÐsvÓiwÐxyÑizÓX{ò  #Hð  @H˜CØ ŸKšKÒQXÒZ]Ð(^Õ_ð`ó Ø+¬c°,Ó.?Ñ?˜Ø,1°G·L±LÀÓ4FÑ,FÈÑ,O˜ SÑ)ØŸ™ sÖ+ð,ð —~‘~ eÓ,ò &�Ø—g‘g˜e“nÒ?¨¯©°Ó(9Ò?¸R�ÙÐ4¸¿	¹	»ÑCØÜ Ÿ,™,×.Ñ.¨x¸Ó=�Ø—w‘w˜u“~Ò?¨¯©°Ó)9Ò?¸R×FÑFÓHÒ{ÌBÏGÉG×L\ÑL\Ð]`×]fÑ]fÐgjÓ]kÐlmÑ]nÓLoÒ{Ðs{�Ø#¤c¨,Ó&7Ñ7‘ÚT[Ò]`Ð$a�˜SÑ!Ø× Ñ  Õ%ð&ô ˜%“jˆGöô �f‰fÐ>À
ÈGÔ[]×[_Ñ[_Ôbd×bfÑbfÑ[fÔg€Gåð	Ü! '¨=Ó9ˆEØ—~‘~ dÓ+ò .�ð Lò .�DØ—I‘I—M‘M $¨Õ-ñ.ð.ð —^‘^ EÓ*ò �Ø—z‘z¨�zÔ-°a·f±f¸W´oÈaÏfÉfÐUZÌmÐde×djÑdjÐknÔdoØ—K‘K•Mà—H‘H•Jð	ô
 ˜%“jˆGð €Mô8ô —Y‘Y˜°¼¿¹Ô>‘ÀA€IÜ�f‰fÐ/°¸GÌ2Ï4É4ÔRT×RVÑRVÉ;ÔW€Gä�f‰f�W˜j¨'¼¿¹Ô>€GÜ�f‰f�\ 4¨¼¿¹Ô=€GÜ�f‰fÐ@À"ÀgÔUW×UYÑUYÔZ€Gà€EØ—‘˜vÓ&ó  ˆØ�K‰K‹MˆÙØÜ�F‰FÐ+¨R°Ó3ˆÜ�F‰FÐ*¨B°Ó2ˆØ�I‰I�d˜BÓ×'Ñ'¨¨cÓ2ˆÜ�F‰F�<  aÓ(ˆÜ—‘�z 2 qÓ)ˆÜ×!Ñ! %Ó(ˆØ—‘˜f cÓ*×2Ñ2°8¸SÓAˆÜ—‘Ð7¸¸UÓCˆÙØØ ×&Ñ&Ó(ò 	 ‰DˆAˆqØ—	‘	˜!˜Q“‰Að	 ä Ó.ò 	2‰FˆAˆsØ—	‘	˜-¨!Ñ+¨SÓ1‰Að	2ô �y‰y˜ A¤r§t¡tÔ,´·±¸9ÀaÌÏÉÔ1NØ˜a‘ˆAØ�‰�Q—W‘W“YÖð+ ð. �+‰+�eÓ
€CØ×"Ñ"Ó$ò  ‰ˆˆ1Ø�k‰k˜!˜QÓ‰ð ä˜MÓ*ò 2‰ˆˆ3Ø�k‰k˜-¨!Ñ+¨SÓ1‰ð2ô �&‰&Ð! 2 sÓ
+€CÜ
�&‰&� " cÓ
*€CÜ
�&‰&� " cÓ
*€CÜ
�&‰&Ð# R¨Ó
-€Cä
×
Ñ
˜CÓ
 €CÜ
�&‰&�˜d CÓ
(€CÜ
�&‰&�˜F CÓ
(€CÜ
�&‰&�˜s CÓ
(€Cä‹5€DØ€EØ�Y‰Y�vÓò ˆÜ�f‰f�V˜R¤§¡¨
°B¸Ó!:Ó;ˆÙØØ�$‰;ØØ�‰�ŒØ�‰�Q�ðð �+‰+�eÓ
×
"Ñ
"Ó
$€Cà�	˜;Ð&Ð&øôG ò 	Úð	ûôB ò 	Úð	úsM   ÇA:m0 ÉEm0 Î:m0 Ïm0 Ï!1m0 ÐB)m0 Ò>Em0 ÙCn  í0	m=í<m=î 	nînc                  ó¦  — dd l } t        j                  j                  dt        j                  j                  t        j                  j                  t        «      «      «       ddlm	} | j                  «       }|j                  j                  t        «       d}d}t        «       }g }g }t        dt         dz   «      D �]&  }	 t#        ||«      }	t%        |	«      }
|
st)        d|z  d¬«        �nùt)        d|t+        |
«      fz  d¬«       |
D �]¤  \  }}}||v rŒ|j-                  |«       t/        |«      }|s|dz  }Œ1t1        ||«      \  }}}|s|}|s|}t3        ||«      \  }}}t+        t5        j6                  d	d
|«      j9                  «       «      }t5        j:                  d|t4        j<                  «       xr+ t5        j:                  d|t4        j<                  «       xr | }|dk  s|rt)        d|d d z  d¬«       |dz  }Œút>        ||||d
|t@        d
tB        |rdjE                  d„ |D «       «      nd
dœ}tF        r/|jI                  |«       t)        d|d d ›d|›d�d¬«       |dz  }�Œc|jI                  |«       |dz  }t)        d|d d ›d|›d�d¬«       tK        jL                  d«       �Œ§ tK        jL                  d«       tF        r�Œ|s�Œ ||tN        ¬«       g }�Œ) tF        rltQ        tF        dd¬«      5 }|D ]+  }|jS                  tU        jV                  |d¬«      dz   «       Œ- 	 d d d «       t)        d tF        t+        |«      fz  d¬«       n|r ||tN        ¬«       t)        d!|z  d¬«       t)        d"|z  d¬«       t)        d#t>        z  d¬«       y # t&        $ r}t)        d||fz  d¬«       Y d }~ ŒØd }~ww xY w# 1 sw Y   Œ—xY w)$Nr   )Úpush_to_searchdbr   zPage %d fetch error: %sTr   zPage %d: empty, stopzPage %d: found %d itemsrl   r   r“   r”   é   z  skip empty/placeholder: %sé(   z; c              3   ó0   K  — | ]  \  }}|›d |›�–— Œ y­w)ú|N© )Ú.0Úur-   s      r.   ú	<genexpr>zmain.<locals>.<genexpr>U  s   è ø€ Ò(K¹d¸aÀ²A±qÔ)9Ñ(Kùs   ‚)Ú	site_nameÚ
source_urlr   ra   Úpub_dateÚsummaryr¦   ÚcategoryÚtagsÚ
group_namerz   z
  JSONL + z (ú)z  + g      Ð?g      à?)Úbatch_labelÚwr   )rG   F)Úensure_asciir�   zJSONL written: %s (%d rows)u
   æ–°å¢ž: %du
   è·³è¿‡: %dz=== %s done ===),r?   Úsysr   Úinsertro   ÚdirnameÚabspathÚ__file__Úcrawler_libr¼   ÚSessionr4   Úupdater=   r¤   r>   Ú_PAGESÚ
fetch_listÚ
parse_listrL   rN   rI   r¥   rV   Úparse_detailrº   r*   r+   r,   r˜   r–   Ú	SITE_NAMEÚCATEGORYÚ
GROUP_NAMEr�   r   ru   rJ   rK   ÚSCRIPT_NAMEÚopenÚwriteÚjsonÚdumps)r?   r¼   ÚsÚ	new_countÚ
skip_countÚ	seen_urlsÚ
jsonl_rowsÚbatchÚpageÚxml_textr¢   rU   rx   ra   ÚdateÚdhtmlÚdtitleÚddateÚcontent_htmlr¦   r®   ÚattsÚ	plain_lenÚno_paraÚitemÚfÚrows                              r.   Úmainr÷   "  s{  € ÛÜ‡H�H‡O�O�A”r—w‘w—‘¤r§w¡w§¡´xÓ'@ÓAÔBÝ,Ø×ÑÓ€AØ‡I�I×Ñ”WÔà€IØ€JÜ“€IØ€JØ€Eä�aœ !™Ó$ó 4ˆð	Ü! ! TÓ*ˆHÜ˜xÓ(ˆEñ ÜÐ(¨4Ñ/°tÕ<ÚÜÐ'¨4´°U³Ð*<Ñ<ÀDÕIØ$)ó %	Ñ ˆG�U˜DØ˜)Ñ#ØØ�M‰M˜'Ô"ä˜'“NˆEÙØ˜a‘�
ØÜ*6°u¸gÓ*FÑ'ˆF�E˜<ÙØ�ÙØ�Ü'3°LÀ'Ó'JÑ$ˆG�Y ÜœBŸF™F :¨r°7Ó;×AÑAÓCÓDˆIÜŸ)™) I¨w¼¿¹Ó=Ð=Ò{ÄbÇiÁiÐPYÐ[bÔdf×dhÑdhÓFiÐBiÒ{Ðr{Ðn{ˆGà˜1Š}¡ÜÐ4°v¸c¸r°{ÑBÈ$ÕOØ˜a‘�
Øä&°gÀgØ¨U¸rØ"´À"Ü(ÙOS˜tŸy™yÑ(KÀdÔ(KÔKÐY[ñˆDõ Ø×!Ñ! $Ô'Ý¨V°C°Rª[º%Ð@ÈÕMØ˜Q‘�	ÙØ�L‰L˜ÔØ˜‰NˆIÝ 6¨#¨2¢;²Ð6¸dÕCÜ�J‰J�tÖðK%	ôL 	�
‰
�3Œß›eÙ˜U´Õ<ØŠEði4õl Ü”*˜c¨GÔ4ð 	D¸Ø!ò D�Ø—‘œŸ
™
 3°UÔ;¸dÑBÕCñD÷	Dô 	Ð+¬z¼3¸z»?Ð.KÑKÐSWÖXáÙ˜U´Õ<ä	ˆ,˜Ñ
"¨$Õ/Ü	ˆ,˜Ñ
#¨4Õ0Ü	Ð
œiÑ
'¨tÖ4øô{ ò 	ÜÐ+¨t°Q¨iÑ7¸tÕDÝûð	ú÷f	Dð 	Dús$   ÃNË?1OÎ	OÎ'N?Î?OÏOc                 óœ   — t        t        «      }t        |«      |d<   | j                  t        |dd¬«      }t
        |_        |j                  S )Nrê   é   F)Úparamsr5   r6   )r<   Ú	JQ_PARAMSrM   rD   Ú	PROXY_URLrF   rG   rH   )Úsessionrê   rú   rS   s       r.   rÙ   rÙ   s  s>   € Ü”)‹_€FÜ˜“Y€Fˆ6�NØ�‰”I f°bÀˆÓG€AÜ€A„JØ�6‰6€Mr0   c           	      ó  — g }t        j                  d| t         j                  «      D �]ß  }|j                  d«      }t        j                  d|t         j                  t         j                  z  «      D �]‘  }t        j                  |j                  d«      «      j                  «       }|j                  d«      }t        t        j                  dd|«      «      }|rt        |«      dk  rŒxt        j                  d|«      sŒ�|j                  d	«      r
t        |z   }n8|j                  d
«      s't        j                  j!                  t        d	z   |«      }d}t        j                  d|«      }	t        j                  d|«      }
|	rl|
rV|	j                  d«      ›d|
j                  d«      j#                  d«      ›d|
j                  d«      j#                  d«      ›�}n|	j                  d«      dz   }|j%                  |||f«       �Œ” �Œâ |S )Nz<!\[CDATA\[(.*?)\]\]>r   z$<a[^>]*href="([^"]+)"[^>]*>(.*?)</a>r:   rl   r   é   z$/art/\d{4}/\d+/\d+/art_\d+_\d+\.htmlr   Úhttpz/art/(\d{4})/\d+/\d+/z(\d{1,2})-(\d{1,2})ú-z-01-01)r*   Úfinditerr•   rm   r–   r'   r(   r,   r/   r+   rI   r˜   rn   ÚBASE_URLrr   rs   rt   Úzfillru   )rë   r¢   rv   ÚfragÚlmr\   rw   rT   rì   ÚymÚdms              r.   rÚ   rÚ   {  s˜  € Ø€Eä�[‰[Ð1°8¼R¿T¹TÓBó ,ˆØ�w‰w�q‹zˆÜ—+‘+ÐEÀtÌRÏTÉTÔTV×TXÑTXÉ[ÓYó 	,ˆBÜ×$Ñ$ R§X¡X¨a£[Ó1×7Ñ7Ó9ˆDØ—H‘H˜Q“KˆEÜœbŸf™f Z°°UÓ;Ó<ˆCÙœ#˜c›( Qš,ØÜ—9‘9ÐDÀdÔKØØ�‰˜sÔ#Ü $‘‘Ø—_‘_ VÔ,Ü—|‘|×+Ñ+¬H°s©N¸DÓA�àˆDÜ—‘Ð3°TÓ:ˆBÜ—‘Ð1°4Ó8ˆBÙÙØ)+¯©°!­°b·h±h¸q³k×6GÑ6GÈÕ6JÈBÏHÉHÐUVËK×L]ÑL]Ð^_ÔL`Ða‘DàŸ8™8 A›;¨Ñ1�DØ�L‰L˜$  TÐ*Ö+ò+	,ð,ð0 €Lr0   c                 ó¤  — d}d}d}t         �rÐt        | d«      }|j                  ddt        j                  dt        j                  «      i¬«      }|r|j                  d«      rt        |d   «      }|s.|j                  d«      }|rt        |j                  d	¬
«      «      }|j                  ddt        j                  dt        j                  «      i¬«      }|r�|j                  d«      rpt        j                  d|d   «      }	|	rU|	j                  d«      ›d|	j                  d«      j                  d«      ›d|	j                  d«      j                  d«      ›�}|j                  d«      xsK |j                  d«      xs8 |j                  d«      xs% |j                  d¬«      xs |j                  d«      }
|
r"dj                  d„ |
j                  D «       «      }|smt        j                  d| «      }	|	rU|	j                  d«      ›d|	j                  d«      j                  d«      ›d|	j                  d«      j                  d«      ›�}|||fS )Nr   rZ   Úmetar   ÚArticleTitle)rž   r¦   Úh1Tr_   ÚPubDatez(\d{4})-(\d{1,2})-(\d{1,2})r   r  r:   r3   zdiv.detail_texts div.contentzdiv.detail_textszdiv.contentÚzoom)Úidzdiv.zoomc              3   ó2   K  — | ]  }t        |«      –— Œ y ­w)N)rM   )rÂ   Úcs     r.   rÄ   zparse_detail.<locals>.<genexpr>±  s   è ø€ Ò"?¨a¤3 q§6Ñ"?ùs   ‚u'   (\d{4})[-å¹´/](\d{1,2})[-æœˆ/](\d{1,2}))r   r    r*   Úcompiler–   rD   r/   r™   r˜   rm   r  Ú
select_oner�   Úcontents)Ú	html_textr|   ra   rì   rð   ÚsoupÚmtr  Úmdr  Úels              r.   rÛ   rÛ   ™  sï  € Ø€EØ€DØ€LÞÜ˜Y¨Ó6ˆØ�Y‰Y�v f¬b¯j©j¸Ì"Ï$É$Ó.OÐ%PˆYÓQˆÙ�"—&‘&˜Ô#Ü  9¡Ó.ˆEÙØ—‘˜4“ˆBÙÜ# B§K¡K°d KÓ$;Ó<�Ø�Y‰Y�v f¬b¯j©j¸ÄRÇTÁTÓ.JÐ%KˆYÓLˆÙ�"—&‘&˜Ô#Ü—‘Ð9¸2¸i¹=ÓIˆBÙØ%'§X¡X¨a¥[°"·(±(¸1³+×2CÑ2CÀAÕ2FÈÏÉÐQRË×HYÑHYÐZ[ÔH\Ð]�à�o‰oÐ<Ó=ò EØ—‘Ð!3Ó4òEà—‘ Ó/òEð —‘˜f�Ó%òEð *.¯©¸Ó)Dð 	ñ ØŸ7™7Ñ"?°2·;±;Ô"?Ó?ˆLÙÜ�Y‰YÐAÀ9ÓMˆÙØ!#§¡¨!¥¨b¯h©h°q«k×.?Ñ.?ÀÕ.BÀBÇHÁHÈQÃK×DUÑDUÐVWÔDXÐYˆDØ�$˜Ð$Ð$r0   Ú__main__)Nrù   )5Ú__doc__rÐ   ro   r*   rJ   râ   Úhtmlr'   Úurllib.parserr   Úbs4r   ÚImportErrorÚenvironrD   r   r   rF   r=   ÚCOL_MAPÚ_ACTIVE_COLr£   Úargvrµ   r[   rI   rn   rq   rN   ÚlistÚkeysÚexitrÜ   rÞ   rß   rÝ   r  ÚLIST_URLrü   rû   ÚPERPAGEÚ
_MAX_PAGESÚintÚ
ValueErrorrØ   r/   rV   rº   r÷   rÙ   rÚ   rÛ   Ú__name__rÁ   r0   r.   ú<module>r-     sº  ðñ÷ ?× >× >Ó >ðÝ!ð �*‰*�.‰.˜Ð$9Ó
:€Ø�Z‰Z�^‰^˜L¨"Ó-€
Ø€ð @ØOØ'Ø(ñ	€ð  Ð)MÐVdð  nañ  bØ Ð*HÐQeð  ocñ  dñ€ð
 €Ù�c—h‘hÓò )�D€A€qØˆG‚|˜˜A™¡ C§H¡H£Ò-Ø—h‘h˜q 1™u‘o‰Ø	
�‰�hÕ	Ø—g‘g˜c 1“o aÑ(‰ð	)ð
 �gÑÚ	ª;¹¸W¿\¹\»^Ô8LÐ
MÐUYÕZØ€C‡H�HˆQ„Kà�KÑ  Ñ(€	Ø€
Ø%€Ø�;Ñ Ñ&€Ø'€Ø�;Ñ Ñ&€ØG€	àØØØØ˜Ñ$ ZÑ0ØØØ&Øñ
€	ð €à€
Ù�c—h‘hÓò 
�D€A€qØ‡|�|�JÔð	Ù˜QŸW™W S¨!›_¨QÑ/Ó0‰Jð 
ˆi‹˜A ™E¡C¨¯©£MÓ1ð	Ù˜SŸX™X a¨!¡e™_Ó-‰Jð
ð " Q’‰¨A€òóò8c'òLN5òbòò<%ð@ ˆzÒÙ…Fð øðI ò ØƒMðûðl ò 	Ùð	ûð
 ò 	Ùð	ús5    H ÆHÆ?HÈHÈHÈHÈHÈH'È&H'