
    ̶h                         d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ e j                            d            G d	 d
e          ZdS )    N)Session)Spider)PyQuery)quoteunquote)AES)unpadz..c                   f    e Zd Zd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d ZdS )r   {}c                     d| _         | j         dd| _        t                      | _        | j        j                            | j                   d S )Nzhttps://stgay.comzPMozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0)Refererz
User-Agent)hostheadersr   sessionupdate)selfextends     -   /storage/emulated/0/纯福利/PY1/py_stgay.pyinitzSpider.init   sM    '	yl
 
 yy##DL11111    c                     d S N r   s    r   getNamezSpider.getName       r   c                     d S r   r   )r   urls     r   isVideoFormatzSpider.isVideoFormat   r   r   c                     d S r   r   r   s    r   manualVideoCheckzSpider.manualVideoCheck   r   r   c                     d S r   r   r   s    r   destroyzSpider.destroy    r   r   c                    |                      d          }g } |d                                          D ]r}|                    d          }|rYd|v rU|                    |                                                                |                    d          d         d           sg } |d                                          D ]r}|                    d                              d          d         }|d	k    r<|                    |                                                                |d
           s|d	d|dgidS )Nzall/playz#app-nav a.app-nav-itemhref/videos//)	type_nametype_idz.dx-line-tab-item aplay)nvtag)keyvalue)classfilters)getpqitemsattrappendtextstripsplit)r   filterrspCLASSESar%   s         r   homeContentzSpider.homeContent#   s_   jj$$.//5577 	 	A66&>>D 
d**VVXX^^--::c??2.       *++1133 	 	A66&>>'',,R0Dv~~))    
 !@!@ AB
 
 	
r   c                     d S r   r   r   s    r   homeVideoContentzSpider.homeVideoContent:   r   r   c           
         |dk    rdnd}d|v r|d         n|}|                      | d| d|           }g } |d                                          D ]}	|	                    d          }
|
                    d          }|
                                                                }|	                    d	                              d
          }|	                    d                                                                          }|                    |                    d          d         ||                                  dt          |           |d            |d          }t          |                    d                    }t          |                    d                    }||||z   dz
  |z  ||dS )Nr+   allcategoryr.   r'   .video-itema.line-clamp-1r%   imgdata-src.flex.justify-end .text-whiter(   &type=img&url=vod_idvod_namevod_picvod_remarksul.pager.dx-pagerdata-rec-per-pagedata-rec-total   listpage	pagecountlimittotal)r3   r4   findr5   r7   r8   r6   r9   getProxyUrlr   int)r   tidpgr:   r   typer.   r;   videositem
title_linkr%   r7   img_srcdurationpagerrW   rX   s                     r   categoryContentzSpider.categoryContent=   s   vuu:$fUmmCjjD--3----..C&&,,.. 	 	D#344J??6**D??$$**,,Dii&&++J77Gyy!@AAFFHHNNPPHMM**S//"- "..00PPgPP'	      '((EJJ23344EJJ/0011%-!+5
 
 	
r   c           	         |                      |d                   } |d          }|                    d          }|                    d          }|                    d          }| |d                                                              d                              d                                          |                                  d	t          |           d
| dt          |           d}d|giS )Nr   z#msez
data-videozdata-posterzdata-urlzh1.dx-titlelatin-1utf-8rI   u   搜同社区$)rK   rL   rM   vod_play_fromvod_play_urlrT   )r3   r5   r7   encodedecoder8   rZ   r   )r   arrayr;   mse_dividpicr   vods           r   detailContentzSpider.detailContentY   s    jjq""#f++\\,''ll=))ll:&&M**//1188CCJJ7SSYY[[**,,HHE#JJHH+!00E#JJ00
 
 r   1c           
         |                      dt          |           d|           }g } |d                                          D ]1}|                    d          }|                    d          }|                                                    d                              d                                          }	|                    d                              d	          }
|                    d
                                                                          }|	                    |
                    d          d         |	|                                  dt          |
           |d           3 |d          }t          |                    d                    }t          |                    d                    }||||z   dz
  |z  ||dS )Nzsearch/r'   rD   rE   r%   rg   rh   rF   rG   rH   r(   rI   rJ   rO   rP   rQ   rR   rS   )r3   r   r4   rY   r5   r7   rl   rm   r8   r6   r9   rZ   r[   )r   r/   quickr]   r;   r_   r`   ra   r%   r7   rb   rc   rd   rW   rX   s                  r   searchContentzSpider.searchContenth   s   jj45::444455C&&,,.. 	 	D#344J??6**D??$$++I66==gFFLLNNDii&&++J77Gyy!@AAFFHHNNPPHMM**S//"- "..00PPgPP'	      '((EJJ23344EJJ/0011%-!+5
 
 	
r   c                 4    t          |          dd| j        dS )N0 )r   parsecontentTypeheader)r   r   )r   flagrp   vipFlagss       r   playerContentzSpider.playerContent   s%    2;;l	
 
 	
r   c                 x    |d         dk    r-|                      t          |d                             }dd|gS d S )Nr^   rF   r      zapplication/octet-stream)decrypt_imgr   )r   paramcontents      r   
localProxyzSpider.localProxy   sF    =E!!&&wuU|'<'<==G3W== "!r   c                    	 | j                             | j         d| d          j        }t	          |                    d                    S # t          $ r*}t          dt          |                      Y d }~d S d }~ww xY w)Nr&      timeoutrh   u   请求失败: , )	r   getr   r7   pqrl   	Exceptionprintstr)r   pathr;   es       r   r3   zSpider.getpq   s    	,""di#?#?#?#?"KKPCcjj))*** 	 	 	-SVV--...44444	s   AA 
BA>>Bc                 B   d}d}|                     d          }|                     d          }| j                            |d          j        }t	          j        |t          j        |          }|                    |          }t          |t          j	                  }	|	S )Nf5d965df7533627097b60394abc2fbe1rh   r   r   )
rl   r   r   r   r   newMODE_CBCdecryptr	   
block_size)
r   r   key_striv_strr/   ivencrypted_bytescipherdecrypted_bytes
final_datas
             r   r   zSpider.decrypt_img   s    $#nnW%%]]7##,**3*::BclB// ..99?CN;;
r   N)r   )rt   )__name__
__module____qualname__r   r   r   r!   r#   r>   r@   re   rs   rw   r   r   r3   r   r   r   r   r   r      s        2 2 2 2        
 
 
.  
 
 
8  
 
 
 
4
 
 
> > >
  	 	 	 	 	r   r   )sysrequestsr   base.spiderr   pyqueryr   r   urllib.parser   r   Crypto.Cipherr   Crypto.Util.Paddingr	   r   r6   r   r   r   <module>r      s    


              ! ! ! ! ! ! ' ' ' ' ' ' ' '       % % % % % %    S S S S SV S S S S Sr   