U
    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   s    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              7   C   s   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"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d76}g }|D ]}| ||| d8 q~||d9< |S ):N202122232425Z26272829Z30313233Z3435363738404344Z50Z51Z54Z55Z574742454648Z52Z53Z58Z73Z56394149Z59Z60Z61Z62Z6364Z6566Z67Z68Z69Z70Z71Z72)6u   传媒厂商u   麻豆传媒u   91制片u   蜜桃传媒u   天美传媒u   精东影片u   星空传媒u   葫芦影业u
   糖心VLOGu   精品推荐u   日本无码u   日本有码u   AV解说u   中文有码u   中文无码u   日韩极品u   日韩无码u   少女萝莉u   水嫩萝莉u   极品主播u   卡通动漫u   SM调教u   探花合集u   91大神u   台湾萝莉u   萝莉传媒u   白虎口爆u   嫩女网爆u   嫩逼乌鸡u   少女伦理u   萝莉互口u   黑料网爆u   野战车震u   萝莉黑瓜u   萝莉巨乳u   明星换脸u   萝莉抠逼u   国产大作u   欧美萝莉u   热门事件u   少女3Pu   偷拍萝莉u   强奸少女u   重口猎奇u   制服萝控u   极品少女u   明星爆料u
   X短视频u   AV明星u   极品萝莉u   人妻艹妈u   VR视角u   角色扮演u   男同男娘)	type_nametype_idclass)append)r   filterresult
cateManualclasseskr   r   r   homeContent   s    8
zSpider.homeContentc                 C   s   i }z| j | j| jd}t|j}g }|d}|D ]}z|dd  }|dd }|dsp| j| }|dd }	|		dd	 
d
d}
|d}|r|d nd}||
|||d W q6   Y q6Y q6X q6||d< W n   g |d< Y nX |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   r1   rsphtmlvideosvideo_elementselementnamepichrefvidremarkr   r   r   homeVideoContent\   s8    



zSpider.homeVideoContentc                 C   s  i }| j  d| d| d}| j|| jd}t|j}g }	|d}
|
D ]}z|dd  }|dd }|d	s| j | }|d
d }|	dd 
dd}|d}|r|d nd}|	||||d W qJ   Y qJY qJX qJ|	|d< ||d< d|d< d|d< d|d< |S )Nz/vod/type/id/z/page/r>   r6   r7   r8   r   r9   r:   r;   r<   r=   r	   r?   r@   rE   pagei'  	pagecount   limiti?B total)r   rF   r   r   rG   rH   rI   rJ   rK   rL   rM   r/   )r   tidpgr0   r   r1   urlrN   rO   vodListrQ   rR   rS   rT   rU   rV   rW   r   r   r   categoryContent   s<    



zSpider.categoryContentc                 C   sx  |d }| j  d| d}| j|| jd}t|j}|dd dd}|d}|rb|d nd}|d	}|r||d nd}g }	g }
|d
}|D ]}|d}|r|d  }|		| |d}g }|D ]>}|dd  }|dd }|	| d| j  |  q|
	d
| q|	sPdg}	| j  d| d}|
	d|  ||||d
|	d
|
d}d|giS )Nr   z/vod/detail/id/r>   r6   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   r/   join)r   arrayr^   r`   rN   rO   titlerT   desc	play_fromplay_urlZplay_sourcessourcesource_nameepisodesZepisode_urlsZepisodeep_nameZep_hrefplay_page_urlvodr   r   r   detailContent   sH    





	zSpider.detailContentc                 C   s   i }| j  dtj| d}| j|| jd}t|j}g }|	d}|D ]}	z|		dd 
 }
|		dd }|ds| j | }|		d	d }|d
d dd}|		d}|r|d nd}|||
||d W qL   Y qLY qLX qL||d< |S )Nz/vod/search/page/1/wd/r>   r6   r7   r8   r   r9   r:   r;   r<   r=   r	   r?   r@   rE   )r   urllibparsequoterF   r   r   rG   rH   rI   rJ   rK   rL   rM   r/   )r   keyquickr1   r`   rN   rO   ra   rQ   rR   rS   rT   rU   rV   rW   r   r   r   searchContent   s4    



zSpider.searchContentc                 C   s  i }| dr| j | n|}|drVd|d< d|d< ||d< t| j|d< |S | j|| jd	}d
}t||j	tj
}|rz^t|d}	|	dd}
|
r|
dd}
d|d< d|d< |
|d< t| j|d< |W S W n   Y nX ddddg}|D ]n}t||j	}|r|ddd}
|
rd|
ks:d|
krd|d< d|d< |
|d< t| j|d< |  S qd}t||j	}|r|d}| drd| }n| dr| j| }| |||S d|d< d|d< ||d< t| j|d< |S )Nr<   z.m3u8r   rv   r	   playUrlr`   headerr6   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vipFlagsr1   r`   rN   patternmatchZplayer_info	video_urlZurl_patternsZiframe_patternZiframe_match
iframe_srcr   r   r   r      sj    





zSpider.playerContentc                 C   s   d S Nr   )r   r`   r   r   r   isVideoFormatA  s    zSpider.isVideoFormatc                 C   s   d S r   r   r   r   r   r   manualVideoCheckD  s    zSpider.manualVideoCheckc                 C   s   g S r   r   )r   paramr   r   r   
localProxyG  s    zSpider.localProxyN)r	   )__name__
__module____qualname__r   r   r5   rX   rb   rt   rz   r   r   r   r   r   r   r   r   r      s   
D$#4Kr   )syspathr/   base.spiderr   r   timeurllib.parseru   r   requestslxmlr   r   r   r   r   <module>   s   