
    ̶hz-                         d dl Z e j                            d           d dlmZ d dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ  G d de          ZdS )    Nz..)Spider)etreec                   R    e Zd Zd ZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd ZdS )r   c                     dS )Nu   四虎视频 selfs    1   /storage/emulated/0/纯福利/PY1/四虎视频.pygetNamezSpider.getName   s    ~     c                 2    d| _         d| j         d| _        d S )Nzhttps://www.sihuhu.xyzzsMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36)z
User-AgentReferer)baseUrlheaders)r	   extends     r
   initzSpider.init   s&    / P|
 
r   c                    i }i 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"i d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDi dEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidj}g }|D ] }|                     |||         dk           !||dl<   |S )mNu   传媒厂商20u   麻豆传媒21u   91制片22u   蜜桃传媒23u   天美传媒24u   精东影片25u   星空传媒26u   葫芦影业27u
   糖心VLOG28u   精品推荐29u   日本无码30u   日本有码31u   AV解说32u   中文有码33u   中文无码34u   日韩极品35u   日韩无码36u   少女萝莉37u   水嫩萝莉38u   极品主播40u   卡通动漫43u   SM调教44u   探花合集50u   91大神51u   台湾萝莉54u   萝莉传媒55u   白虎口爆57u   嫩女网爆47u   嫩逼乌鸡42u   少女伦理45u   萝莉互口46u   黑料网爆48u   野战车震52u   萝莉黑瓜53u   萝莉巨乳58u   明星换脸73u   萝莉抠逼56u   国产大作39u   欧美萝莉41u   热门事件49u   少女3P59u   偷拍萝莉60u   强奸少女61u   重口猎奇62u   制服萝控63u   极品少女64u   明星爆料65u
   X短视频66u   AV明星67u   极品萝莉68u   人妻艹妈69707172)u   VR视角u   角色扮演u   男同男娘)	type_nametype_idclass)append)r	   filterresult
cateManualclassesks         r
   homeContentzSpider.homeContent   s   7
D7
D7
 7
 D	7

 D7
 D7
 D7
 D7
 $7
 D7
 D7
 D7
 7
 D7
 D7
  D!7
" D#7
 7
$ D%7
& D'7
( D)7
* D+7
, -7
. D/7
0 17
2 D37
4 D57
6 D77
8 D97
: D;7
< D=7
> D?7
@ DA7
B DC7
D DE7
 7
 7
F DG7
H DI7
J DK7
L DM7
N DO7
P DQ7
R S7
T DU7
V DW7
X DY7
Z D[7
\ D]7
^ D_7
` $a7
b c7
d De7
f Dg7
 7
h   m7
 7
 7

p  	 	ANN%a=      "wr   c                    i }	 |                      | j        | j                  }t          j        |j                  }g }|                    d          }|D ]}	 |                    d          d                                         }|                    d          d         }|                    d          s
| j        |z   }|                    d          d         }	|		                    d          d	         
                    d
d          }
|                    d          }|r|d         nd}|                    |
|||d           #  Y xY w||d<   n#  g |d<   Y nxY w|S )Nr   *//ul[@class="thumbnail-group clearfix"]/li.//h5/a/text()r   .//img/@data-originalhttp.//a[@class="thumbnail"]/@href/.htmlr   .//span[@class="title"]/text()vod_idvod_namevod_picvod_remarkslist)fetchr   r   r   HTMLtextxpathstrip
startswithsplitreplacerN   )r	   rP   rsphtmlvideosvideo_elementselementnamepichrefvidremarks               r
   homeVideoContentzSpider.homeVideoContent\   s   	 **T\4<*@@C:ch''DF!ZZ(TUUN)  "==)9::1=CCEED!--(?@@CC>>&11 1"lS0"==)IJJ1MD**S//"-55grBBC$]]+KLLF*08VAYYbFMM"%$(#&'-	# #    H#F6NN	 F6NNNs%   AE C,EE E	
E Ec                    i }| j          d| d| d}|                     || j                  }t          j        |j                  }g }	|                    d          }
|
D ]}	 |                    d          d                                         }|                    d          d         }|                    d	          s
| j         |z   }|                    d
          d         }|	                    d          d         
                    dd          }|                    d          }|r|d         nd}|	                    ||||d           #  Y xY w|	|d<   ||d<   d|d<   d|d<   d|d<   |S )Nz/vod/type/id/z/page/r^   rV   rW   rX   r   rY   rZ   r[   r\   r]   r   r_   r`   re   pagei'  	pagecount   limiti?B total)r   rf   r   r   rg   rh   ri   rj   rk   rl   rm   rN   )r	   tidpgrO   r   rP   urlrn   ro   vodListrq   rr   rs   rt   ru   rv   rw   s                    r
   categoryContentzSpider.categoryContent   s   @@C@@r@@@jjdlj33z#(##$PQQ% 	 	G}}%566q9??AAmm$;<<Q?~~f-- -,,C}}%EFFqIjjoob)11'2>> 'GHH&,4"! $"#)	        vv"{w ws   $C,EEc                 V   |d         }| j          d| d}|                     || j                  }t          j        |j                  }|                    d          d                             dd          }|                    d          }|r|d         nd}|                    d	          }|r|d         nd}g }	g }
|                    d
          }|D ]}|                    d          }|r|d                                         }|		                    |           |                    d          }g }|D ]k}|                    d          d                                         }|                    d          d         }|	                    | d| j          |            l|
	                    d
                    |                     |	s(dg}	| j          d| d}|
	                    d|            ||||d
                    |	          d
                    |
          d}d|giS )Nr   z/vod/detail/id/r^   rV   z//title/text()u    - 四虎视频r   z%//meta[@property="og:image"]/@contentz$//meta[@name="description"]/@contentz$//div[@class="module-play-list"]/divz.//span/text()z.//az./text()z./@href$#u   默认z/vod/play/id/z/sid/1/nid/1.htmlu   第1集$z$$$)ra   rb   rc   vod_contentvod_play_fromvod_play_urlre   )r   rf   r   r   rg   rh   ri   rm   rj   rN   join)r	   arrayr   r   rn   ro   titlert   desc	play_fromplay_urlplay_sourcessourcesource_nameepisodesepisode_urlsepisodeep_nameep_hrefplay_page_urlvods                        r
   detailContentzSpider.detailContent   se   Ah88c888jjdlj33z#(## 

+,,Q/778I2NNjj@AA#c!ffzz@AA&tAwwB 	 zz"HII" 	8 	8F ,,'788K 8)!n2244  --- "<<//!' N NG%mmJ77:@@BBG%mmI66q9G ''7(L(LT\(L7(L(LMMMM 6 6777  	8!
I#|PP#PPPMOO6}66777 "ZZ	22!JJx00
 
 r   c                    i }| j          dt          j                            |           d}|                     || j                  }t          j        |j                  }g }|	                    d          }|D ]}		 |		                    d          d         
                                }
|		                    d          d         }|                    d          s
| j         |z   }|		                    d	          d         }|                    d
          d                             dd          }|		                    d          }|r|d         nd}|                    ||
||d           #  Y xY w||d<   |S )Nz/vod/search/page/1/wd/r^   rV   rW   rX   r   rY   rZ   r[   r\   r]   r   r_   r`   re   )r   urllibparsequoterf   r   r   rg   rh   ri   rj   rk   rl   rm   rN   )r	   keyquickrP   r   rn   ro   r   rq   rr   rs   rt   ru   rv   rw   s                  r
   searchContentzSpider.searchContent   s   SSV\5G5G5L5LSSSjjdlj33z#(##$PQQ% 	 	G}}%566q9??AAmm$;<<Q?~~f-- -,,C}}%EFFqIjjoob)11'2>> 'GHH&,4"! $"#)	        vs   >C,E++E/c                    i }|                     d          r| j         | n|}|                    d          r-d|d<   d|d<   ||d<   t          j        | j                  |d<   |S |                     || j        	          }d
}t          j        ||j	        t          j
                  }|r	 t          j        |                    d                    }	|	                    dd          }
|
rC|
                    dd          }
d|d<   d|d<   |
|d<   t          j        | j                  |d<   |S n#  Y nxY wg d}|D ]}t          j        ||j	                  }|rb|                    d                              dd          }
|
r7d|
v sd|
v r/d|d<   d|d<   |
|d<   t          j        | j                  |d<   |c S d}t          j        ||j	                  }|rf|                    d          }|                     d          rd|z   }n|                     d          r
| j        |z   }|                     |||          S d|d<   d|d<   ||d<   t          j        | j                  |d<   |S )Nr\   z.m3u8r   r   r   playUrlr   headerrV   zvar player_aaaa\s*=\s*({.*?});   z\/)z"url"\s*:\s*"([^"]+)"zurl\s*:\s*'([^']+)'zvideo_url\s*:\s*"([^"]+)"zvideo_url\s*:\s*'([^']+)'m3u8mp4z<iframe[^>]+src="([^"]+)"z//zhttps:)rk   r   endswithjsondumpsr   rf   researchrh   DOTALLloadsgroupgetrm   playerContent)r	   flagidvipFlagsrP   r   rn   patternmatchplayer_info	video_urlurl_patternsiframe_patterniframe_match
iframe_srcs                  r
   r   zSpider.playerContent   s   ')}}S'9'9A#r###r ;;w 	F7O "F9F5M#z$,77F8Mjjdlj33 4	'38RY77 	"jQ88'OOE266	 " ) 1 1% = =I&'F7O(*F9%$-F5M'+z$,'?'?F8$!M"
 
 
 $ 		" 		"GIgsx00E "!KKNN225#>>	 "&I"5"5)9K9K&'F7O(*F9%$-F5M'+z$,'?'?F8$!MMM 6y:: 	B%++A..J$$T** 7%
2

&&s++ 7!\J6
 %%dJAAA wyu:dl33xs   -BD0 0D4c                     d S Nr   )r	   r   s     r
   isVideoFormatzSpider.isVideoFormatA      r   c                     d S r   r   r   s    r
   manualVideoCheckzSpider.manualVideoCheckD  r   r   c                     g S r   r   )r	   params     r
   
localProxyzSpider.localProxyG  s    	r   N)r   )__name__
__module____qualname__r   r   rT   rx   r   r   r   r   r   r   r   r   r   r
   r   r      s          
 
 
 
B B BH" " "H! ! !F2 2 2h  >I I IV        r   r   )syspathrN   base.spiderr   r   timeurllib.parser   r   requestslxmlr   r   r   r
   <module>r      s    


                 				       { { { { {V { { { { {r   