
    Uic                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZ e j                  j                  d       d dlmZ  G d de      Zy)	    N)datetime)SequenceMatcher)quoteunquotez..)Spiderc            "       B   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd*dZd*dZd Zd ZdZdddZddddddddddd dd!d"dgd#d$d%ddddd&dd!d'dd(d"dgd#d)d*ddddd+dd,d-dgd#d.d/dddd!d0dd1d"dgd#d2d3ddddd4dd5d3dd6d7dgd#d8d9ddddd:dd;d<dd=d>dd?d@dgd#dAdBddddCdDddEdFddGdHddIdJddKdLddMdNddOdPddQdRddSdTddUdVddWdXddYdZdd[d\dd]d^dd_d`dgd#dadbg ddddcddddedfddgdhddidjddkdlddmdnddodpddqdrddsdtddudvddwdxddydzdd{d|dd}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd#gdddddddddd dd!d"dgd#d$d%ddddd&dd!d'dd(d"dgd#d)d*ddddd+dd,d-dgd#d.d/dddd!d0dd1d"dgd#d2d3ddddd4dd5d3dd6d7dgd#dAdBddddCdDddEdFddGdHddIdJddKdLddMdNddOdPddQdRddSdTddUdVddWdXddYdZdd[d\dd]d^dd_d`dgd#dadbg ddddcddddedfddgdhddidjdddddmdnddodpddsdtdddddudvddwdxdddddydzdd{d|dd}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd#gd$d%dddddddddd!d'ddd&dddddddd;dddddd?dddddddddd"dgd#d2d3ddddd4dd5d3dd6d7dgd#dadbdddddddddddddddddddddd{d|dddddddddddsdtdddddddddddddddddddddddddddddedfddgdhdgd#ddBdddddDdddFdddHdddJdddLdddNdddPdddRddddddXdddZddd\ddd^ddd`dgd#gd$d%dddddddd&dd!d'dd;ddd?dddd"dgd#d2d3ddddd4dd5d3dd6d7dgd#dadbddddwdxddsdtddddddddddddddddd ddddddddddddddddddd	ddqdrdd
ddddddddddddddddddddd{d|dgd#ddBdddddDdddFdddHdddJdddLdddNdddPdddRddddddXdddZddd\ddd^ddd`dgd#gd2d3ddddd4dd5d3dd6d7dgd#dadbddddddddddddddddddddddddddddddddddddd d!dd"d#ddddd$d%dd&d'dgd#gd(iZy)(+  r   c                      y)N
   B站番剧 selfs    ,   /storage/emulated/0/lz/py/sy/哔哩视频.pygetNamezSpider.getName   s    	    c                 v    	 t        j                  |      | _        | j                  d      S #  i | _        Y xY w)NF)jsonloads
extendDicthomeContent)r   extends     r   initzSpider.init   s8    ZZ'4? 
		%	  4?s   - 	8c                      y Nr   r   s    r   destroyzSpider.destroy       r   c                      y r   r   )r   urls     r   isVideoFormatzSpider.isVideoFormat   r   r   c                      y r   r   r   s    r   manualVideoCheckzSpider.manualVideoCheck   r   r   c                    i }dddddd}g }|D ]  }|j                  |||   d        ||d<   |r| j                  d	   |d
<   t        j                         j                  }|d
   D ]r  }|d
   |   D ]c  }|d   dk(  r|d   D ]  }	|	d   j                         st        |	d         |k  rv|d   j                  |	      }
t        |t        |	d         d      D ]D  }|d   j                  |
dt        |       dt        |dz          dt        |      d       |
dz  }
F    |d   dk(  s|d   D ]  }	|	d   j                         st        |	d         |k  rw|d   j                  |	      }
t        |t        |	d         d      D ]D  }|d   j                  |
dt        |       dt        |dz          dt        |      d       |
dz  }
F  ` c f u |S )N14275)u   番剧u   国创   电影u   综艺u	   电视剧)	type_nametype_idclassfilterfilterskeyyearvaluen[,   )vr0   release_datez-01-01 00:00:00,z-01-01 00:00:00))appendconfigr   nowr.   isdigitintindexrangeinsertstr)r   r+   result
cateManualclasseskcurrentYearresultfilterrfrfvposr.   s               r   r   zSpider.homeContent    s   &* 'a
>>!}  
 &/{{8,6)$$;i(|Y-
5	VG#
c(


s3x=;&'{  %;CHr:T
W+

S!CI;aDF}A(FSQUY"W
X
(# ; 
	  U)~
%G#
c(


s3x=;&'{  %;CHr:T
W+

S!CI;6Fs4PQ6{mSc(dknoskt"u
v
(# ; 
	  . )0 
-r   c                 *    | j                  dddi       S )Nr"   F)categoryContentr   s    r   homeVideoContentzSpider.homeVideoContentM   s    			c3r	22r   c           	         t        |      }i }g }| j                  d      \  }}}dj                  |||      }	|D ]  }
|	d|
 dt        ||
          z  }	 | j	                  |	| j
                  |d      }t        j                  | j                  |j                              }|d   d   }|D ]}  }t        |d	         j                         }| j                  | j                  |d
               }|d   j                         }|d   j                         }|j                  ||||d        t        |      }|d   d   dk(  r|dz   }n|}||d<   ||d<   ||d<   ||d<   ||d<   |S )N{}zohttps://api.bilibili.com/pgc/season/index/result?order=2&sort=0&pagesize=20&type=1&st={}&season_type={}&page={}&=   headerscookiestimeoutdatalist	season_idtitlecover
index_showvod_idvod_namevod_picvod_remarkshas_nextr4   page	pagecountlimittotal)r=   	getCookieformatr   fetchheaderr   r   	cleanTexttextrA   stripremoveHtmlTagsr9   len)r   cidrc   r+   extrB   videoscookie_r   r-   rrW   vodListvodaidrZ   imgremark	lenvideosrd   s                        r   rL   zSpider.categoryContentP   s   	T$&&%,&!Qy  	A  	A  BE  GJ  LP  	Q#cAcU!E#c(O$
%%3 
jjdkk61jE!	DNN166*	+$L 'c	S		$	$	&3t~~c'l;<5	W			3##%6	==	   &k)	&\*"ax99&.&.!&&/&/	-r   c           	         |d   }dj                  |      }| j                  || j                  d      }t        j                  | j                  |j                              }|| j                  |d   d         |d   d   |d   d   |d   d	   j                  d
d      | j                  |d   d         d}|d   d   }d}|D ]  }|d   }	|d   }
| j                  |d         j                  dd      j                  dd      }t        j                  dt        j                  |d   dz              }|j                  d      r|dd  }|dj                  |||	|
      z   } d|d<   |j                  d      |d<   d |gi}|S )!Nr   z9http://api.bilibili.com/pgc/view/web/season?season_id={0}
   rT   rV   rB   rZ   r[   share_sub_titleactors
u   ，evaluate)r^   r_   r`   r(   	vod_actorvod_contentepisodes idrp   
share_copy#-$*z%H:%M:%Sdurationi  z00:   z[{}]/{}${}_{}#r
   vod_play_fromvod_play_urlrX   )rh   ri   rj   r   r   rk   rl   rn   replacetimestrftimegmtime
startswithrm   )r   didr   ru   rW   rw   	videoListplayUrlvideoeidrp   namerz   rB   s                 r   detailContentzSpider.detailContentr   s   A#CJJ3O#
jjdkk2j6!	DNN166*	+$""4>'#:;8nW%X01Xx(00u=%%d8nZ&@A	# 8nZ()'e	t3	u3


eL1
2
:
:3
D
L
LSRU
V4MM*dkk%
2CD2H&IJ6ABZF'..vtS#FF7  &#oc*#n	&
 
-r   c                 (    | j                  ||d      S )Nr"   )searchContentPage)r   r-   quicks      r   searchContentzSpider.searchContent   s    			UC	00r   c                 x   g }d}d| j                   v r| j                   d   }d| j                   v rE| j                  | j                   d   d      }d|j                         v r|j                         d   }|dk(  rd}nNt        |      t        k(  r<|j                  d      r+| j                  |d      j                  j                         }	 t        |      t        k(  rt        j                  |d	      }| j                  |      \  }}}d
| d| }| j                  || j                  |d      }t        j                  | j                  |j                              }	d|	d   vrd|idfS |	d   d   }
|
D ]  }t	        |d         j                         }| j                  | j                  |d               }t        d ||      j!                         dk  r||vre|d   d   d   j                         }| j                  |d         j                         }|j#                  ||||d        d|i}|S #  Y DxY w)Nr   rs   r   r}   rV   rO   httpFensure_asciizWhttps://api.bilibili.com/x/web-interface/search/type?search_type=media_bangumi&keyword=z&page=rR   rS   rB   rW   rX   r4   rY   rZ   g333333?epsr   r[   r\   r]   )r   ri   r   typerA   r   rl   rm   dictdumpsrg   rj   r   rk   rn   r   ratior9   )r   r-   r   rc   rr   rs   ru   rt   r   rW   rv   rw   sidrZ   ry   rz   rB   s                    r   r   zSpider.searchContentPage   s6   && OOH%6tzz$//&)2z61!&&(VVXhFr\6F|sv008JJvrJ*//5576
6ldZZU3F ',&!Q
abeafflmqlrs#
jjdkk61jE!	DNN166*	+$T&\!6
A
L"'c	S		$	$	&3t~~c'l;<5dE3'--/#5#U:J	UAw		%	%	'3L 1288:6	==	   
6& 
-3s   )H4 4H9c           
      L   i }|j                  d      }|d   }|d   }dj                  ||      }d}	| j                  }
d|
v r|
d   }	d|
v r;| j                  |
d   d	      }d|j	                         v r|j	                         d   }	|	dk(  rd
}	nNt        |	      t        k(  r<|	j                  d      r+| j                  |	d	      j                  j                         }		 t        |	      t        k(  rt	        j                  |	d      }	| j                  |	      \  }}}t        t	        j                  |            }d|
v rt        |
d         }nd}d|d<   d|d<   d| dt        |       d| d| d| 
|d<   | j                  |d<   dj                  |      |d<   d|d<   |S #  Y xY w)Nrt   r   r4   zchttps://api.bilibili.com/pgc/player/web/playurl?ep_id={0}&cid={1}&qn=120&fnval=4048&fnver=0&fourk=1r   rs   r   r}   r   rO   r   Fr   thread0parser   z3http://127.0.0.1:9978/proxy?do=py&type=mpd&cookies=&url=&aid=&cid=&thread=r   rj   z/https://api.bilibili.com/x/v1/dm/list.so?oid={}danmakuapplication/dash+xmlrh   )splitrh   r   ri   r   r   rA   r   rl   rm   r   r   rg   r   rj   )r   flagpidvipFlagsrB   pidListrx   rp   r   rs   r   ru   cookiesDictrt   rU   r   s                   r   playerContentzSpider.playerContent   s   &IIcN'
#
#mttuxz}~#&*x 6zzz*V$bz11!&&(VVXhFr\6F|sv008JJvrJ*//5576
6ldZZU3F nnV,+q!$**[)*'
8$%66&/&GyPUV[\_V`Uaafgjfkkpqtpuu}  E  ~F  G&-[[&GNNsS&+&	-s   )F F#c                 h    |d   dk(  r| j                  |      S |d   dk(  r| j                  |      S y )Nr   mpdmedia)proxyMpd
proxyMedia)r   paramss     r   
localProxyzSpider.localProxy   s;    F^u
--
F^w
//&
!!	r   c                    | j                  |      \  }}}|dk(  rdd|gS |}|d   d   d   }	 | j                  || j                  dd	      }|j                  }	 |j	                          |dk7  r6| j
                  dk(  r'| xj
                  dz  c_        | j                  |d       | j                  j                         }	d|v r|d   |	d<   d|v r||	d<   ddd |	gS dd| j                  ||	d      j                  gS #  Y xY w#  	 j	                          n#  Y nxY wd
}|D ]W  }	 | j                  || j                  dd	      }|j                  }n	#  d
}Y nxY w|dk(  r n	 j	                          R#  Y VxY w Y xY w)Nr      r   durlr   
backup_urlTr4   rT   streamrV     r?   Rangez127.0.0.1:7777Locationi.  z
video/MP2T   application/octet-streamrT   r   )	getDashri   rj   status_codecloseretryr   copycontent)
r   r   r   	durlinfos	mediaTyper   durlinforu   
statusCoderj   s
             r   r   zSpider.proxyMpd   s   "&,,v"6'9i%&
00	3"<08

3D!
DAJ
WWY* CDJJ!OJJ!OJOOFD!KK6WoF7O#F:tV,,*DJJwW[J,\,d,d
ee;
	
WWY
	J
**S$++dA*
Fa==jjcggi
 se   +D C; ;C?=D E>DE>DE>%+EE>EE>"E32E>3E75E>c                 4   | j                  |      \  }}}d|v rt        |d         }|d   |   }|d   }n$d|v rt        |d         }|d   |   }|d   }ng dS 	 | j                  ||d   d	      }	|	j                  }
	 |	j	                          |
dk7  r6| j                  dk(  r'| xj                  dz  c_        | j                  |d       | j
                  j                         }d|v r|d   |d<   dd| j                  ||d	      j                  gS #  Y xY w#  	 	j	                          n#  Y nxY wd
}
|d   D ]W  }	 | j                  || j
                  dd      }	|	j                  }
n	#  d
}
Y nxY w|
dk(  r n	 	j	                          R#  Y VxY w Y xY w)Nvideoidr   baseUrlaudioidaudio)r   z
text/plainr   rT   Tr   r   	backupUrlr4   r   r   r   r?   r   r   r   )
r   r=   ri   r   r   rj   r   r   r   r   )r   r   forceRefreshrt   	dashinfosr   dashinfor   r   ru   r   rj   s               r   r   zSpider.proxyMedia  s   LL(/!Y&	"#7 )8	)	3F	"#7 )8	)	3
!!
zz#vi0z>1:	GGI* 34::?::?:??64 ;;&G_6'?
)4::c6RV:+W+_+_	``5	
	GGI	:{#s	CT1	EQ--ZZS

WWY
	 $sf   #D ?D DD FD,+F,D0.F>+E*)F*E0.F;FFFFc                    |d   }|d   }t        |d         }d|v r|d   }nd}| j                  j                         }| j                  d|d          t	        j
                  |d         }d| d	| }	|r| j                  |	       n!| j                  |	      }
|
r|
d
   |
d   |
d   fS |j                         }| j                  |||d      }t	        j
                  | j                  |j                              }
|
d   dk7  rdi dfS d|
d   vr|
d   d   d   d   }	 t        | j                  d|      j                  d            dz
  }t        |      dkD  r#	 | j                  d       dt        |       d| }| j                  |	|d|
d   |d       ||
d   dfS |
d   d   }|d   }|d    }d}d}g }|d!   D ]  }	 t        | j                  d|d"         j                  d            }|j!                  |       |d#   }|d$   }|d%   }|d&   }|d'   }|d(   }|j                         }||d)<   d*t        t	        j"                  |             d+t        |       d,| d-| d.| 
}|d/| d0| d1| d2| d3| d4| d5| d6|d7   d8    d9|d7   d:    d;z   }|dz  } d}d} |d<   D ]  }!	 t        | j                  d|!d"         j                  d            }|j!                  |       |!d$   }|!d#   }|!d(   }"|j                         }#| |#d=<   d*t        t	        j"                  |             d+t        |       d,| d-| d>|  
}|d?| d0| d3|" d5| d6|!d7   d8    d9|!d7   d:    d;z   }| dz  }  d@| dA| dB|j%                          dC|j%                          dD	}$t'        |      dz
  }| j                  |	dE|$j)                  dFdG      ||dH       |$j)                  dFdG      |dEfS #  t        t        j                               dz   }Y xY w#  | j                  d       Y xY w#  t        t        j                               dz   }Y ZxY w#  t        t        j                               dz   }Y xY w)INrx   rp   r   r   r   debugrU   bilimdmpdCache_rt   r   r   r   rR   rU   rT   rV   coder   dashrB   r   zdeadline=(\d+))regsrcr4   <   iX  zhttp://127.0.0.1:7777zhttp://127.0.0.1:9978/gozhttp://127.0.0.1:7777?url=r   mp4)r   r   r   	expiresAtr   minBufferTimer   r   codecs	bandwidth	frameRateheightwidthr   r   z5http://127.0.0.1:9978/proxy?do=py&type=media&cookies=r   r   r   z	&videoid=z"	      <Representation bandwidth="z
" codecs="z" frameRate="z
" height="z" id="z	" width="z">
	        <BaseURL>z-</BaseURL>
	        <SegmentBase indexRange="SegmentBase
indexRangez#">
	        <Initialization range="Initializationz5"/>
	        </SegmentBase>
	      </Representation>
r   r   z	&audioid=z<	      <Representation audioSamplingRate="44100" bandwidth="z<?xml version="1.0" encoding="UTF-8"?>
	<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" type="static" mediaPresentationDuration="PTzS" minBufferTime="PTzS">
	  <Period>
	    <AdaptationSet mimeType="video/mp4" startWithSAP="1" scanType="progressive" segmentAlignment="true">
	      z|
	    </AdaptationSet>
	    <AdaptationSet mimeType="audio/mp4" startWithSAP="1" segmentAlignment="true" lang="und">
	      z+
	    </AdaptationSet>
	  </Period>
	</MPD>r   rP   z&amp;)r   r   r   r   )r   rj   r   setCacher   r   delCachegetCacheri   rk   rl   r=   regStrgroupr   r   r9   r   rm   minr   )%r   r   r   rx   rp   r   r   rj   
cookieDictr-   rW   rU   ru   purlr   r   r   r   	videoinfor   deadlineListr   deadliner   r   r   r   r   void	vidparamsr   	audioinfor   r   aoid	aidparamsr   s%                                        r   r   zSpider.getDashD  s   u#u#u#866;;&--	*+zz&+,*
#au%#==
--
4
	?D-tF|;;OO'
jjgvqjA!	DNN166*	+$	&\Q
b"*	4>	!
x.
 
#E
*4'DKK$4$K?EEaHIBNI 
&kAo,	ZZ'( (d}HVHED==$DNajkl
X
%%8nV$)z"(O,-)',!e&4;;#3y9I;JPPQRSTH x (O6[!9[!9(O6>5
+4{{}9!9YDU4::V]K^E_D``efklofpeqqvwzv{  |A  BE  AF  FO  PW  OX  Y7A)JW]V^^klukv  wA  BH  AI  IO  PT  OU  U^  _d  ^e e) ##(#7#E"F G!!&}!56F!G H I 9 a<7+ ", )'!e&4;;#3y9I;JPPQRSTH x [!9(O6
+4{{}9!9YDU4::V]K^E_D``efklofpeqqvwzv{  |A  BE  AF  FO  PW  OX  Y7[\e[ffpqwpxx~  @D  E E) ##(#7#E"F G!!&}!56F!G H I 9 a<7% "&N OW  NX  Xl  mz  l{ { 	  	 
	# ,"$)--eC0IXapyz{	S'	"Iu	44W'DIIK 3&I,	ZZ*+&499;#%H0&499;#%Hs0   .O# P .P$*.Q#"PP!$"Q	"Q1c           	      Z   d|v rd|v rt        j                  |      }nUt        |j                  d      j	                  d      D cg c]"  }|j                         j	                  dd      $ c}      }| j                  d      }|r|d   }|d   }|||fS d	d
i}| j                  d||d      }t        j                  |j                        }	|	d   }
|
dk(  r|	d   d   d   j                  dd      d   j	                  d      d   }|	d   d   d   j                  dd      d   j	                  d      d   }| j                  d||t        t        j                               dz   d       |||fS | j                  d|d      }|j                  j                         }d}d}|||fS c c}w )N{};rQ   r4   bbloginimgKeysubKey
User-AgentrMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36z+http://api.bilibili.com/x/web-interface/navr}   r   r   r   rW   wbi_imgimg_url/.sub_urli  )r  r  r   zhttps://www.bilibili.com/rR   r~   r   )r   r   r   rm   r   r   ri   rl   rsplitr   r=   r   rU   get_dict)r   rs   rU   cor  r  r  rj   ru   rW   r   s              r   rg   zSpider.getCookie  s   F]sf}ZZ7fll36G6M6Mc6RS6R288:##C+6RST7MM)$'H6H6
66
!!   F& jj>Y_ikjl!	AFF	$	f$	QYL#I.55c1=a@FFsKAN6L#I.55c1=a@FFsKAN6==vcRVR[R[R]N^aeNefg
66
!!
jj,fajH!II '&&	&&	  - Ts   'F(c                 6    ddl m}m}  |d      } ||d|      S )Nr   )subcompilez<.*?>r   )rer  r  )r   r   r  r  cleans        r   rn   zSpider.removeHtmlTags  s    
'
%	UB	r   r   r  zhttps://www.bilibili.com)r  Refererr+   season_versionu   类型z-1u   全部r6   r"   u   正片r$   r'   3u   其他)r-   r   r/   areau   地区u   日本u   美国z1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70	is_finishu   状态u   完结r   u   连载	copyrightu   版权u   独家z1,2,4season_statusu   付费u   免费z2,6z4,6u	   大会员season_monthu   季度u   1月r#   u   4月r%   u   7月10u   10月r.   u   年份z[2023,2024)2023z[2022,2023)2022z[2021,2022)2021z[2020,2021)2020z[2019,2020)2019z[2018,2019)2018z[2017,2018)2017z[2016,2017)2016z[2015,2016)2015z[2010,2015)z	2014-2010z[2005,2010)z	2009-2005z[2000,2005)z	2004-2000z[1990,2000)u   90年代z[1980,1990)u   80年代z[,1980)u   更早style_idu   风格10010u   原创10011u	   漫画改10012u	   小说改10013u	   游戏改10102u   特摄10015u	   布袋戏10016u   热血10017u   穿越10018u   奇幻10020u   战斗10021u   搞笑10022u   日常10023u   科幻10024u   萌系10025u   治愈10026u   校园10027u   少儿10028u   泡面10029u   恋爱10030u   少女10031u   魔法10032u   冒险10033u   历史10034u   架空10035u   机战10036u   神魔10037u   声控10038u   运动10039u   励志10040u   音乐10041u   推理10042u   社团10043u   智斗10044u   催泪10045u   美食10046u   偶像10047u   乙女10048u   职场10014u	   动态漫10019u   玄幻10078u   武侠10057u   悬疑10049u   古风u   中国大陆z6,7u   中国港台8u   韩国9u   法国u   英国15u   德国u   泰国35u	   意大利13u	   西班牙z5,11,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,7010104u   短片10050u   剧情10051u   喜剧10052u   爱情10053u   动作10054u   恐怖10055u   犯罪10056u   惊悚10058u   战争10059u   动画10060u   传记10061u   家庭10062u   歌舞10063u   纪实10064u   灾难r8   z)[2023-01-01 00:00:00,2024-01-01 00:00:00)z)[2022-01-01 00:00:00,2023-01-01 00:00:00)z)[2021-01-01 00:00:00,2022-01-01 00:00:00)z)[2020-01-01 00:00:00,2021-01-01 00:00:00)z)[2019-01-01 00:00:00,2020-01-01 00:00:00)z)[2018-01-01 00:00:00,2019-01-01 00:00:00)z)[2017-01-01 00:00:00,2018-01-01 00:00:00)z)[2016-01-01 00:00:00,2017-01-01 00:00:00)z)[2010-01-01 00:00:00,2016-01-01 00:00:00)z	2015-2010z)[2005-01-01 00:00:00,2010-01-01 00:00:00)z)[2000-01-01 00:00:00,2005-01-01 00:00:00)z)[1990-01-01 00:00:00,2000-01-01 00:00:00)z)[1980-01-01 00:00:00,1990-01-01 00:00:00)z[,1980-01-01 00:00:00)z1,6,7u   中国z5,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,7010079u   青春10103u   短剧10080u   都市10081u   古装10082u   谍战10083u   经典10084u   情感10085u   神话10086u   年代10087u   农村10088u   刑侦10089u   军旅10090u   访谈10091u	   脱口秀10092u	   真人秀10094u   选秀10095u   旅游10098u   晚会10096u	   演唱会10097u   亲子10100u   文化10069u   萌宠10099u   养成)r"   r#   r$   r&   r%   N)F)__name__
__module____qualname__r   r   r   r   r    r   rM   rL   r   r   r   r   r   r   r   r   rg   rn   r   rj   r:   r   r   r   r   r      s    !+Z3 D@1)V#J)fV+aZg5R!8
 
 D'
 )QYCZ`chp[qwz  @H  sI  OR  W_  J`  Ca  b  jp  x@  OS  X`  Ja  gj  ow  bx  ~A  FN  yO  U[  `h  Pi  Ij  ck  s~  FN  ]a  fn  Xo  ux  }E	  pF	  L	O	  T	\	  G	]	  W^	  l_	  g	r	  z	B
  Q
U
  Z
b
  L
c
  i
l
  q
y
  d
z
  @G  LT  {
U  K
V  `	W  _n  v~  MQ  V^  H_  eh  mu  `v  |A  FN  wO  UZ  _j  Pk  Gl  Xm  uC  KS  bf  ks  ]t  z}  BH  uI  OR  W]  J^  dg  lr  _s  y}  BI  tJ  \K  nL  TZ  bj  y}  BJ  tK  Q^  ci  Lj  p}  BH  kI  O\  ag  Jh  n{  @F  iG  MZ  _e  Hf  ly  ~D  gE  KX  ]c  Fd  jw  |B  eC  IV  [a  Db  hu  zE  cF  LY  ^i  Gj  p}  BM  kN  Ta  fp  Oq  wD  IS  rT  Zc  hp  Uq  sr  Ms  {E  MU  ^E*  dh  mu  _v  ^E*  |C  HP  wQ  ^E*  W^  cn  Ro  ^E*  u|  AL  pM  ^E*  SZ  _j  Nk  ^E*  qx  }E  lF  ^E*  LS  Xc  Gd  ^E*  jq  v~  e  ^E*  EL  QY  @Z  ^E*  `g  lt  [u  ^E*  {B  GO  vP  ^E*  V]  bj  Qk  ^E*  qx  }E  lF  ^E*  LS  X`  Ga  ^E*  gn  s{  b|  ^E*  B I   N V   }W   ^E*  ] d   i q   X r   ^E*  x    D!L!  s M!  ^E*  S!Z!  _!g!  N!h!  ^E*  n!u!  z!B"  i!C"  ^E*  I"P"  U"]"  D"^"  ^E*  d"k"  p"x"  _"y"  ^E*  "F#  K#S#  z"T#  ^E*  Z#a#  f#n#  U#o#  ^E*  u#|#  A$I$  p#J$  ^E*  P$W$  \$d$  K$e$  ^E*  k$r$  w$$  f$@%  ^E*  F%M%  R%Z%  A%[%  ^E*  a%h%  m%u%  \%v%  ^E*  |%C&  H&P&  w%Q&  ^E*  W&^&  c&k&  R&l&  ^E*  r&y&  ~&F'  m&G'  ^E*  M'T'  Y'a'  H'b'  ^E*  h'o'  t'|'  c'}'  ^E*  C(J(  O(W(  ~'X(  ^E*  ^(e(  j(r(  Y(s(  ^E*  y(@)  E)M)  t(N)  ^E*  T)[)  `)h)  O)i)  ^E*  o)v)  {)C*  j)D*  ^E*  tF*  G*  T*d*  l*t*  C+G+  L+T+  ~*U+  [+^+  c+k+  V+l+  r+u+  z+B,  m+C,  I,L,  Q,Y,  D,Z,  }*[,  M*\,  d,j,  r,z,  I-M-  R-Z-  D-[-  a-d-  i-q-  \-r-  x-{-  @.H.  s-I.  O.U1  Z1b1  J.c1  C-d1  ],e1  m1x1  @2H2  W2[2  `2h2  R2i2  o2r2  w22  j2@3  F3I3  N3V3  A3W3  Q2X3  f1Y3  a3l3  t3|3  K4O4  T4\4  F4]4  c4f4  k4s4  ^4t4  z4A5  F5N5  u4O5  E4P5  Z3Q5  Y5h5  p5x5  G6K6  P6X6  B6Y6  _6b6  g6o6  Z6p6  v6{6  @7H7  q6I7  O7T7  Y7d7  J7e7  A6f7  R5g7  o7u7  }7E8  T8X8  ]8e8  O8f8  l8y8  ~8D9  g8E9  K9X9  ]9c9  F9d9  j9w9  |9B:  e9C:  I:V:  [:a:  D:b:  h:u:  z:@;  c:A;  G;T;  Y;_;  B;`;  f;s;  x;~;  a;;  E<R<  W<]<  @<^<  d<q<  v<|<  _<}<  C=P=  U=`=  ~<a=  g=t=  y=D>  b=E>  K>X>  ]>h>  F>i>  o>|>  A?K?  j>L?  R?_?  d?n?  M?o?  u?~?  C@K@  p?L@  N8M@  h7N@  V@`@  h@p@  y@~Q  @CA  HAPA  z@QA  y@~Q  WA^A  cAkA  RAlA  y@~Q  rAyA  ~AIB  mAJB  y@~Q  PBWB  \BgB  KBhB  y@~Q  nBuB  zBEC  iBFC  y@~Q  LCSC  XCcC  GCdC  y@~Q  jCqC  vCAD  eCBD  y@~Q  HDOD  TD\D  CD]D  y@~Q  cDjD  oDwD  ^DxD  y@~Q  ~DEE  JERE  yDSE  y@~Q  YE`E  eEmE  TEnE  y@~Q  tE{E  @FHF  oEIF  y@~Q  OFVF  [FcF  JFdF  y@~Q  jFqF  vF~F  eFF  y@~Q  EGLG  QGYG  @GZG  y@~Q  `GgG  lGtG  [GuG  y@~Q  {GBH  GHOH  vGPH  y@~Q  VH]H  bHjH  QHkH  y@~Q  qHxH  }HEI  lHFI  y@~Q  LISI  XI`I  GIaI  y@~Q  gInI  sI{I  bI|I  y@~Q  BJIJ  NJVJ  }IWJ  y@~Q  ]JdJ  iJqJ  XJrJ  y@~Q  xJJ  DKLK  sJMK  y@~Q  SKZK  _KgK  NKhK  y@~Q  nKuK  zKBL  iKCL  y@~Q  ILPL  UL]L  DL^L  y@~Q  dLkL  pLxL  _LyL  y@~Q  LFM  KMSM  zLTM  y@~Q  ZMaM  fMnM  UMoM  y@~Q  uM|M  ANIN  pMJN  y@~Q  PNWN  \NdN  KNeN  y@~Q  kNrN  wNN  fN@O  y@~Q  FOMO  ROZO  AO[O  y@~Q  aOhO  mOuO  \OvO  y@~Q  |OCP  HPPP  wOQP  y@~Q  WP^P  cPkP  RPlP  y@~Q  rPyP  ~PFQ  mPGQ  y@~Q  MQTQ  YQaQ  HQbQ  y@~Q  hQoQ  tQ|Q  cQ}Q  y@~Q  O@Q  L*@R  MRSR  [RcR  rRvR  {RCS  mRDS  JSMS  RS`S  ESaS  gSlS  qSS  bS@T  FTIT  NTVT  ATWT  ]T`T  eTmT  XTnT  tTwT  |TDU  oTEU  KUNU  SU[U  FU\U  bUeU  jUrU  ]UsU  yU}U  BVJV  tUKV  QVUV  ZVbV  LVcV  iVmV  rV}V  dV~V  DWHW  MWXW  VYW  _WMZ  RZZZ  ZW[Z  lR\Z  FR]Z  eZtZ  |ZD[  S[W[  \[d[  N[e[  k[n[  s[{[  f[|[  B\G\  L\T\  }[U\  [\`\  e\p\  V\q\  M[r\  ^Zs\  {\E]  M]U]  d]h]  m]u]  _]v]  |]C^  H^P^  w]Q^  W^^^  c^k^  R^l^  r^y^  ~^F_  m^G_  M_T_  Y_a_  H_b_  h_o_  t_|_  c_}_  C`J`  O`W`  ~_X`  ^`e`  j`r`  Y`s`  y`@a  EaMa  t`Na  Ta[a  `aha  Oaia  oava  {aCb  jaDb  JbQb  Vb^b  Eb_b  eblb  qbyb  `bzb  @cGc  LcTc  {bUc  [cbc  gcoc  Vcpc  vc}c  BdJd  qcKd  QdXd  ]ded  Ldfd  ldsd  xd@e  gdAe  GeNe  Se[e  Be\e  beie  neve  ]ewe  }eDf  IfQf  xeRf  Xf_f  dfof  Sfpf  vf}f  BgMg  qfNg  ^]Og  t\Pg  Xgfg  ngvg  EhIh  NhVh  @hWh  ]hHi  MiSi  XhTi  ZiEj  JjPj  UiQj  WjBk  GkMk  RjNk  Tkk  DlJl  OkKl  Ql|l  AmGm  LlHm  Nmym  ~mDn  ImEn  Knvn  {nAo  FnBo  Hoso  xo~o  Coo  Eppp  up@q  @pAq  Gqrq  wqBr  BqCr  Irtr  yrDs  DrEs  Ksvs  {sEt  FsFt  Ltwt  |tFu  GtGu  Mueu  juru  Husu  gtu  Qguu  ERvu  CvIv  QvYv  hvlv  qvyv  cvzv  @wGw  LwTw  {vUw  [w^w  cwkw  Vwlw  rwuw  zwBx  mwCx  IxLx  QxYx  DxZx  `xdx  ixqx  [xrx  xxs{  x{@|  sxA|  bvB|  |uC|  K|Z|  b|j|  y|}|  B}J}  t|K}  Q}T}  Y}a}  L}b}  h}m}  r}z}  c}{}  A~F~  K~V~  |}W~  s|X~  D|Y~  a~k~  s~{~  JN  S[  E\  bi  nv  ]w  }D@  I@Q@  xR@  X@_@  d@l@  S@m@  s@z@  @GA  n@HA  NAUA  ZAbA  IAcA  iApA  uA}A  dA~A  DBKB  PBXB  AYB  _BfB  kBsB  ZBtB  zBAC  FCNC  uBOC  UC\C  aCiC  PCjC  pCwC  |CDD  kCED  KDRD  WD_D  FD`D  fDmD  rDzD  aD{D  AEHE  MEUE  |DVE  \EcE  hEpE  WEqE  wE~E  CFKF  rELF  RFYF  ^FfF  MFgF  mFtF  yFAG  hFBG  HGOG  TG\G  CG]G  cGjG  oGwG  ^GxG  ~GEH  JHRH  yGSH  YH`H  eHmH  THnH  tH{H  @IHI  oHII  DJI  Z~KI  SIaI  iIqI  @JDJ  IJQJ  {IRJ  XJCK  HKNK  SJOK  UK@L  ELKL  PKLL  RL}L  BMHM  MLIM  OMzM  MEN  JMFN  LNwN  |NBO  GNCO  IOtO  yOO  DO@P  FPqP  vP|P  AP}P  CQnQ  sQyQ  ~PzQ  @RkR  pR{R  {Q|R  BSmS  rS}S  }R~S  DToT  tTT  S@U  FUqU  vU@V  AUAV  GVrV  wVAW  BVBW  HW`W  eWmW  CWnW  zIoW  LIpW  {uqW  ~WMX  UX]X  lXpX  uX}X  gX~X  DYGY  LYTY  XUY  [Y`Y  eYmY  VYnY  tYyY  ~YIZ  oYJZ  fXKZ  wWLZ  TZ^Z  fZnZ  }ZA[  F[N[  xZO[  U[\[  a[i[  P[j[  p[w[  |[D\  k[E\  K\R\  W\b\  F\c\  i\p\  u\@]  d\A]  G]N]  S][]  B]\]  b]i]  n]v]  ]]w]  }]D^  I^Q^  x]R^  X^_^  d^l^  S^m^  s^z^  ^J_  n^K_  Q_X_  ]_e_  L_f_  l_s_  x_@`  g_A`  G`N`  S`[`  B`\`  b`i`  n`v`  ]`w`  }`Da  IaQa  x`Ra  Xa_a  dala  Sama  saza  aGb  naHb  wZIb  MZJb  vWKb  Lbr   r   )sysr   r   r   difflibr   urllib.parser   r   pathr9   base.spiderr   r   r   r   <module>r     s:        # '   IV Ir   