
    JhL                         d dl Z d dlZd dlZd dlZd dlZd dlZe j                  j                  d       d dlm	Z	  G d de	      Z	e
dk(  ryy)    Nz..)Spiderc                   \    e 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 Zd Zd Zy)r   c                      y)N
Aidianying selfs    &   /storage/emulated/0/lz/py/sy/金牌.pygetNamezSpider.getName   s        c                 .    d| _         d| _        d| _        y )Nzhttps://m.sdzhgt.com/zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36z`https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-720p.mp4)home_urlua	error_url)r	   extends     r
   initzSpider.init   s    / D{r   c                     g S Nr   r   s    r
   getDependencezSpider.getDependence   s    	r   c                      y r   r   )r	   urls     r
   isVideoFormatzSpider.isVideoFormat       r   c                      y r   r   r   s    r
   manualVideoCheckzSpider.manualVideoCheck   r   r   c                    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dddddddddddddddd dd!d"dd#d$dd%d&dd'd(dd)d*dd+d,dd-d.dgd/d0d1dddd2d3dd4d5dd6d7dd8d9dd:d;dd<d=dd>d?dd@dAdd-dBdg
d/dCdDddddEdFddGdHddIdJddKdLddMdNddOdPddQdRddSdTddUdVddWdXddYdZdd[d\dd]d^dd_d`ddadbddcdddgd/dedfddddgdhddidjddkdlddmdnddodpdd-dqdgd/drdsdtduddvdwddxdydgd/gd
dddddzd{dd|d}dd~ddddddddgd/ddddddddd%ddddddddddddddddddddddddddgd/d0d1dddd2d3dd4d5dd6d7dd:d;dd<d=dd8d9dd@dAdd-dBdg	d/dCdddddEdFddGdHddIdJddKdLddMdNddOdPddQdRddSdTddUdVddWdXddYdZdd[d\dd]d^dd_d`ddadbdgd/dedfdddddddidjddkdlddmdnddodpddddd-dqdgd/drdsddudddddvdwddxdydgd/gd
ddddddddddddddddgd/ddddddddddddddgd/d0d1dddd2d3dd4d5dd6d7dd:d;dd<d=dd8d9dd-dBdgd/dCdddddEdFddGdHddIdJddKdLddMdNdgd/dedfddddgdhddidjddkdlddmdnddodpdd-dqdgd/drdsddudddddvdwddxdydgd/gd
dddddddddddddgd/ddddddddddddddd'ddddddddd%dddddg	d/d0d1dddd2d3dd:d;dd8d9dd-dBdgd/dCdddddEdFddGdHddIdJddKdLddMdNddOdPddQdRddSdTddUdVddWdXddYdZdd[d\dd]d^dd_d`ddadbdgd/dedfddddgdhddidjddodpdd-dqdgd/drdsddudddddvdwddxdydgd/gddS )N1u   电影)type_id	type_name2u	   电视剧3u   综艺4u   动漫typeu   类型u   全部 )nvu   喜剧z/type/22u   动作z/type/23u   科幻z/type/30u   爱情z/type/26u   悬疑z/type/27u   奇幻z/type/87u   剧情z/type/37u   恐怖z/type/36u   犯罪z/type/35u   动画z/type/33u   惊悚z/type/34u   战争z/type/25u   冒险z/type/31u   灾难z/type/81u   伦理z/type/83u   其他z/type/43)keynamevalueareau   地区u   中国大陆u   /area/中国大陆u   中国香港u   /area/中国香港u   中国台湾u   /area/中国台湾u   美国u   /area/美国u   日本u   /area/日本u   韩国u   /area/韩国u   印度u   /area/印度u   泰国u   /area/泰国u   /area/其他yearu   年份2024z
/year/20242023z
/year/20232022z
/year/20222021z
/year/20212020z
/year/20202019z
/year/20192018z
/year/20182017z
/year/20172016z
/year/20162015z
/year/20152014z
/year/20142013z
/year/20132012z
/year/20122011z
/year/20112010z
/year/2010z	2009~2000z/year/2009~2000langu   语言u   国语u   /lang/国语u   英语u   /lang/英语u   粤语u   /lang/粤语u   韩语u   /lang/韩语u   日语u   /lang/日语u   /lang/其他byu   排序u   上映时间z/sortType/1/sortOrder/0u   人气高低z/sortType/3/sortOrder/0u   评分高低z/sortType/4/sortOrder/0u	   国产剧z/type/14u	   欧美剧z/type/15u	   港台剧z/type/16u	   日韩剧z/type/62u	   其他剧z/type/68classu   古装u   /class/古装u   /class/战争u   /class/喜剧u   家庭u   /class/家庭u   /class/犯罪u   /class/动作u   /class/奇幻u   /class/剧情u   历史u   /class/历史u   短片u   /class/短片u   时间u	   普通话u   /lang/普通话u   泰语u   /lang/泰语u   最近更新u   添加时间z/sortType/2/sortOrder/0u   国产综艺z/type/69u   港台综艺z/type/70u   日韩综艺z/type/72u   欧美综艺z/type/73u	   真人秀u   /class/真人秀u   音乐u   /class/音乐u	   脱口秀u   /class/脱口秀u   国产动漫z/type/75u   日韩动漫z/type/76u   欧美动漫z/type/77u   /class/科幻u   热血u   /class/热血u   /class/冒险u   运动u   /class/运动u   儿童u   /class/儿童)r   r    r!   r"   )r=   filtersr   )r	   filters     r
   homeContentzSpider.homeContent"   s   "%H=
4
1
13 !+!
3!
3!
3!
3!
3!
3!
3!
3!
3!
3!
3!
3!
3!
3!
3!
3!5	6& !+'.BC'.BC'.BC!7!7!7!7!7!7	9	: !+l3l3l3l3l3l3l3l3l3l3l3l3l3l3l3$+<=!?	@& !+!7!7!7!7!7!79	: '.GH'.GH'.GHJ	KyA
F !+$:6$:6$:6$:6$:68	9 !+!8!8!8!8!8!8!8!8!8!8
:	; !+'.BC'.BC'.BC!7!7!7!7!79
	: !+l3l3l3l3l3l3l3l3l3l3l3l3l3l3l35	6$ !+$+<=!7!7!7!7!7!7;		< '.GH'.GH'.GH'.GHJ	K{C
J !+'j9'j9'j9'j9	;	< !+$+=>!8$+=>@	A !+'.BC'.BC'.BC!7!7!7!79		: !+l3l3l3l3l35	6 !+!7!7!7!7!7!7;	< '.GH'.GH'.GH'.GHJ	KS/
b !+'j9'j9'j9;	< !+!8!8!8!8!8!8!8!8:
	; !+'.BC!7!7!7	9	: !+l3l3l3l3l3l3l3l3l3l3l3l3l3l3l35	6$ !+!7!7!7!7	9	: '.GH'.GH'.GH'.GHJ	Ke8
opv
 v	
r   c                    g }t        t        t        j                         dz              }d| }t        j                  |j                               j                         }t        j                  |j                               j                         }| j                  | j                  ||d}	 t        j                  | j                   d|      }|j                         d   }|D ]1  }	|j                  |	d   |	d   |	d	   |	d
   dk(  r|	d   n|	d   d       3 	 |dddS # t        j                  $ r}
g dddcY d }
~
S d }
~
ww xY w)N  z'key=cb808529bae6b6be45ecfab29a4889bc&t=
User-Agentreferertsignz&/api/mw-movie/anonymous/home/hotSearchheadersdatavodIdvodNamevodPictypeId1   
vodVersion
vodRemarksvod_idvod_namevod_picvod_remarksr   listparsejxstrinttimehashlibmd5encode	hexdigestsha1r   r   requestsgetjsonappendRequestException)r	   
video_listrF   rJ   data_md5	data_sha1hres	data_listies              r
   homeVideoContentzSpider.homeVideoContent  sA   
DIIK$&'(8<;;t{{}-779LL!23==?	''}}1iA	,,$--0VWabcC
6*I!!"#G*$%iL#$X;:;I,!:KqQRS_Q`	 " 
 	
 (( 	 	s   /A-D# #E6E;EEc                    |}|j                  d      r|j                  d      nd}|j                  d      r|j                  d      nd}|j                  d      r|j                  d      nd}|j                  d      r|j                  d      nd}	|j                  d      r|j                  d      nd}
|j                  d      r|j                  d      nd}g }| j                  | j                  d}	 t        j                   | j                   d	| | | | |	 |
 | d
| |      }t	        j
                  d|j                        }|sg dddS |d   j                  dd      }t        j                  |      }|D ]1  }|j                  |d   |d   |d   |d   dk(  r|d   n|d   d       3 	 |dddS # t        j                  $ r}g |dcY d }~S d }~ww xY w)Nr#   r$   r=   r*   r+   r;   r<   )rD   rE   z/vod/show/id/z/page/rH   z\\"list\\":(.*?)}}}]r   rW   z\""rK   rL   rM   rN   rO   rP   rQ   rR   rX   msg)re   r   r   rd   refindalltextreplacerf   loadsrg   rh   )r	   cidpager?   extrF   _type_Spider__class_area_year_lang_byri   rl   rm   aabbrn   ro   rp   s                       r
   categoryContentzSpider.categoryContent>  s   #&776?&)ggg&6#'''"B#&776?#&776?#&776?"wwt}cggdm"
''}}
	*,,==/qc%	%PUwWZV[[abfaghC 3SXX>B "Qa88Auc*B

2I!!"#G*$%iL#$X;:;I,!:KqQRS_Q`	  #Qa88 (( 	*q))	*s&   7AF; A F; ;GGGGc                 :   |d   }g }t        t        t        j                         dz              }d| d| }t        j                  |j                               j                         }t        j                  |j                               j                         }| j                  | j                  ||d}	 t        j                  | j                   d| |      }	|	j                         d   }|d	   }
g }|
D ]2  }|d
   }|dz   t        |d         z   }|j                  |dz   |z          4 |j                  |d   ||d   |d   |d   |d   |d   |d   |d   ddj                  |      d       |dddS # t        j                  $ r}g |dcY d }~S d }~ww xY w)Nr   rB   id=(&key=cb808529bae6b6be45ecfab29a4889bc&t=rC   z(/api/mw-movie/anonymous/video/detail?id=rH   rJ   episodeListr(   /nid$typeNamerL   rQ   vodYearvodAreavodActorvodDirector
vodContentu   老僧酿酒#)r   rS   rT   rV   vod_yearvod_area	vod_actorvod_directorvod_contentvod_play_fromvod_play_urlrt   rW   )r\   r]   r^   r_   r`   ra   rb   rc   r   r   rd   re   rf   rg   joinrh   )r	   dididsri   rF   rJ   rj   rk   rl   rm   	play_listr   ro   r(   r   rp   s                   r
   detailContentzSpider.detailContenta  s   !f
DIIK$&'(SEA!E;;t{{}-779LL!23==?	''}}I

	*,,$--0XY\X]^hijC88:f%D]+ILyCi#ah-/##D3J$45 
 !%j!1! $Y#'#5 $Y $Y!%j!1$($7#'#5%3$'HH\$:$ #Qa88 (( 	*q))	*s   7B;E8 8FFFFc                    |}g }t        t        t        j                         dz              }d| d| d| }t        j                  |j                               j                         }t        j                  |j                               j                         }	| j                  | j                  ||	d}
	 t        j                  | j                   d| d| d|
      }|j                         d	   d
   d   }|D ]1  }|j                  |d   |d   |d   |d   dk(  r|d   n|d   d       3 	 |dddS # t        j                  $ r}g |dcY d }~S d }~ww xY w)NrB   zkeyword=z	&pageNum=z4&pageSize=12&key=cb808529bae6b6be45ecfab29a4889bc&t=rC   z3/api/mw-movie/anonymous/video/searchByWord?keyword=z&pageSize=12rH   rJ   resultrX   rK   rL   rM   rN   rO   rP   rQ   rR   rt   r   rW   r[   )r	   r'   quickr|   wdri   rF   rJ   rj   rk   rl   responsern   ro   rp   s                  r
   searchContentzSpider.searchContent  sh   
DIIK$&'("Ytf,`ab`cd;;t{{}-779LL!23==?	''}}I

	*||==/!TUWTXXabfaggstH !/9&AI!!"#G*$%iL#$X;:;I,!:KqQRS_Q`	  #Qa88 (( 	*q))	*s   7A9D7 7E
EEEc                    |}| j                   }|j                  d      }|d   }|d   }t        t        t	        j                         dz              }	d| d| d|	 }t        j                  |j                               j                         }
t        j                  |
j                               j                         }| j                  | j                  |	|d}d	| j                  i}	 t        j                  | j                   d
| d| |      }|j                         d   d   d   d   }||dddS # t        j                  $ r}||dddcY d }~S d }~ww xY w)Nr   r   rO   rB   r   z&nid=r   rC   rD   z0/api/mw-movie/anonymous/v2/video/episode/url?id=rH   rJ   rX   r   )r   headerrY   rZ   )r   splitr\   r]   r^   r_   r`   ra   rb   rc   r   r   rd   re   rf   rh   )r	   flagpidvipFlagsr   play_urlrJ   _id_nidrF   rj   rk   rl   h2rm   rp   s                   r
   playerContentzSpider.playerContent  sY   >>yy~1gAwDIIK$&'(SEtf$LQCP;;t{{}-779LL!23==?	''}}I
 $''
	H,,==/!QRUQVV[\`[abC xxz&)&1!4U;H  2CC (( 	H#rAQGG	Hs   *AD6 6E	EEEc                      y r   r   )r	   paramss     r
   
localProxyzSpider.localProxy  r   r   c                      y)Nu   正在Destroyr   r   s    r
   destroyzSpider.destroy  s    r   N)r   )__name__
__module____qualname__r   r   r   r   r   r@   rq   r   r   r   r   r   r   r   r   r
   r   r      sJ    |
w
r!
F!9F)9V9>D:r   r   __main__)sysr_   r^   rd   rv   rf   pathrg   base.spiderr   r   r   r   r
   <module>r      sM        	    |V || z r   