o
    hz-                     @   sh   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 deZdS )    Nz..)Spider)etreec                   @   sf   e Zd Zdd ZdddZdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )r   c                 C   s   dS )Nu   四虎视频 selfr   r   ,   /storage/emulated/0/lz/py/sy/四虎视频.pygetName      zSpider.getName c                 C   s   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   extendr   r   r   init   s   zSpider.initc                 C   s|  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 q||dl< |S )mNu   传媒厂商20u   麻豆传媒21u   91制片22u   蜜桃传媒23u   天美传媒24u   精东影片25u   星空传媒Z26u   葫芦影业27u
   糖心VLOG28u   精品推荐29u   日本无码30u   日本有码31u   AV解说32u   中文有码33u   中文无码Z34u   日韩极品35u   日韩无码36u   少女萝莉Z37u   水嫩萝莉Z38u   极品主播Z40u   卡通动漫43u   SM调教Z44u   探花合集Z50u   91大神Z51u   台湾萝莉Z54u   萝莉传媒Z55u   白虎口爆Z57u   嫩女网爆Z47u   嫩逼乌鸡42u   少女伦理Z45u   萝莉互口Z46u   黑料网爆Z48u   野战车震Z52u   萝莉黑瓜Z53u   萝莉巨乳Z58u   明星换脸Z73u   萝莉抠逼Z56u   国产大作Z39u   欧美萝莉Z41u   热门事件Z49u   少女3PZ59u   偷拍萝莉Z60u   强奸少女Z61u   重口猎奇Z62u   制服萝控Z63u   极品少女64u   明星爆料Z65u
   X短视频Z66u   AV明星Z67u   极品萝莉Z68u   人妻艹妈Z69Z70Z71Z72)u   VR视角u   角色扮演u   男同男娘)	type_nametype_idclass)append)r   filterresult
cateManualclasseskr   r   r   homeContent   s   	
 !"#$%&'()*+,-./012348
zSpider.homeContentc                 C   s   i }zl| j | j| jd}t|j}g }|d}|D ]L}zE|dd  }|dd }|ds8| j| }|dd }	|		dd	 
d
d}
|d}|rU|d nd}||
|||d W q   Y q||d< W |S    g |d< Y |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replacer%   )r   r'   rsphtmlvideosvideo_elementselementnamepichrefvidremarkr   r   r   homeVideoContent\   s:   





zSpider.homeVideoContentc                 C   s  i }| j  d| d| d}| j|| jd}t|j}g }	|d}
|
D ]L}zE|dd  }|dd }|d	sB| j | }|d
d }|	dd 
dd}|d}|r_|d nd}|	||||d W q%   Y q%|	|d< ||d< d|d< d|d< d|d< |S )Nz/vod/type/id/z/page/r4   r,   r-   r.   r   r/   r0   r1   r2   r3   r
   r5   r6   r;   pagei'  	pagecount   limiti?B total)r   r<   r   r   r=   r>   r?   r@   rA   rB   rC   r%   )r   tidpgr&   r   r'   urlrD   rE   vodListrG   rH   rI   rJ   rK   rL   rM   r   r   r   categoryContent   s<   



zSpider.categoryContentc                 C   sv  |d }| j  d| d}| j|| jd}t|j}|dd dd}|d}|r1|d nd}|d	}|r>|d nd}g }	g }
|d
}|D ]E}|d}|r|d  }|		| |d}g }|D ]}|dd  }|dd }|	| d| j  |  qh|
	d
| qK|	sdg}	| j  d| d}|
	d|  ||||d
|	d
|
d}d|giS )Nr   z/vod/detail/id/r4   r,   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$$$)r7   r8   r9   vod_contentvod_play_fromvod_play_urlr;   )r   r<   r   r   r=   r>   r?   rC   r@   r%   join)r   arrayrT   rV   rD   rE   titlerJ   desc	play_fromplay_urlZplay_sourcessourcesource_nameepisodesZepisode_urlsZepisodeep_nameZep_hrefZplay_page_urlvodr   r   r   detailContent   sJ   






	zSpider.detailContentc                 C   s   i }| j  dtj| d}| j|| jd}t|j}g }|	d}|D ]L}	zE|		dd 
 }
|		dd }|dsC| j | }|		d	d }|d
d dd}|		d}|r`|d nd}|||
||d W q&   Y q&||d< |S )Nz/vod/search/page/1/wd/r4   r,   r-   r.   r   r/   r0   r1   r2   r3   r
   r5   r6   r;   )r   urllibparsequoter<   r   r   r=   r>   r?   r@   rA   rB   rC   r%   )r   keyquickr'   rV   rD   rE   rW   rG   rH   rI   rJ   rK   rL   rM   r   r   r   searchContent   s4   



zSpider.searchContentc                 C   s  i }| dr| j | n|}|dr+d|d< d|d< ||d< t| j|d< |S | j|| jd	}d
}t||j	tj
}|rtz/t|d}	|	dd}
|
rn|
dd}
d|d< d|d< |
|d< t| j|d< |W S W n   Y g d}|D ]6}t||j	}|r|ddd}
|
rd|
v sd|
v rd|d< d|d< |
|d< t| j|d< |  S qzd}t||j	}|r|d}| drd| }n
| dr| j| }| |||S d|d< d|d< ||d< t| j|d< |S )Nr2   z.m3u8r   rk   r
   playUrlrV   headerr,   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:)rA   r   endswithjsondumpsr   r<   researchr>   DOTALLloadsgroupgetrC   playerContent)r   flagidvipFlagsr'   rV   rD   patternmatchZplayer_info	video_urlZurl_patternsZiframe_patternZiframe_match
iframe_srcr   r   r   r~      sf   





zSpider.playerContentc                 C      d S Nr   )r   rV   r   r   r   isVideoFormatA  r	   zSpider.isVideoFormatc                 C   r   r   r   r   r   r   r   manualVideoCheckD  r	   zSpider.manualVideoCheckc                 C   s   g S r   r   )r   paramr   r   r   
localProxyG  r	   zSpider.localProxyN)r
   )__name__
__module____qualname__r   r   r+   rN   rX   ri   ro   r~   r   r   r   r   r   r   r   r      s    
D$#4Kr   )syspathr%   base.spiderr   rv   timeurllib.parserj   rx   requestslxmlr   r   r   r   r   <module>   s   