
    9g#                         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	 d dl
Z
d dlZd dlZd dlmZ d dlZd dlZd dlm Z dZ G d	 d
e      Z G d de      Zy)    N)PoolManager)ssl_)HTTPAdapter)Retry)logger)requestsa  ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:AES256-SHAc                   &     e Zd Zd fd	Zd Z xZS )
TlsAdapterc                 F    || _         t        t        |   di |dddd y )N      F)pool_maxsizemax_retries
pool_block )ssl_optionssuperr
   __init__)selfr   kwargs	__class__s      ,/var/www/highfloat_scraper/RequestManager.pyr   zTlsAdapter.__init__   s.    &j$( 	
	
#$!	
    c                     t        j                  t        t        j                  | j
                        }t        |d|i|| _        y )N)ciphers	cert_reqsoptionsssl_context)r   create_urllib3_contextCIPHERSsslCERT_REQUIREDr   r   poolmanager)r   	pool_argspool_kwargsctxs       r   init_poolmanagerzTlsAdapter.init_poolmanager   s>    ))s'8'8$BRBR
 '	RsRkRr   )r   )__name__
__module____qualname__r   r'   __classcell__)r   s   @r   r
   r
      s    
Sr   r
   c                       e Zd Zd Zd Zd Zd Zd ZddefdZ	d Z
d	 Zd
 Zd Zd Zdej                   fdZdej                   fdZy)RequestManagerc                     || _         | j                         | _        || _        t	        t
        j                  t
        j                  z        | _        y N)	all_sessionsprepareUserAgentsua_dictwebshare_ipsr
   r!   OP_NO_TLSv1OP_NO_TLSv1_1adapter)r   r0   r3   s      r   r   zRequestManager.__init__!   s=    (--/(!#//C4E4E"EFr   c                 @    t        j                  | j                        S r/   )randomchoicer0   r   s    r   getAWSSessionzRequestManager.getAWSSession'   s    }}T..//r   c                 r    t        d      5 }t        j                  |      }d d d        |S # 1 sw Y   S xY w)Nzuser_agents.json)openjsonload)r   fuass      r   r1   z RequestManager.prepareUserAgents*   s4    $% 	))A,C	
	
s   ,6c                 n    t        j                  t        | j                  j	                                     S r/   )r8   r9   listr2   valuesr:   s    r   getRandomUAEntryzRequestManager.getRandomUAEntry/   s#    }}T$,,"5"5"7899r   c                 .    t        j                         }|S r/   )cffiSession)r   ss     r   getNewSessionzRequestManager.getNewSession2   s    LLNr   skins_or_inspect_linksc                    t        d      D ]z  }t        j                  dt        |      z   dz          | j	                         j                  |d      }t        j                  |d|      }||c S t        j                  d       | t        j                  d	d      }|xd	k(  rT t        j                  dt        |      z   d
z          | j                  |      }t        j                  |d|      }||S y xdk(  rT t        j                  dt        |      z   dz          | j                  |      }t        j                  |d|      }||S y xdk(  rT t        j                  dt        |      z   dz          | j                  |      }t        j                  |d|      }||S y xdk(  rT t        j                  dt        |      z   dz          | j                  |      }t        j                  |d|      }||S y dk(  rSt        j                  dt        |      z   dz          | j!                  |      }t        j                  |d|      }||S y 	 y )N   Trying to get: z	 with AWS   )timeoutAWS)responseproxy_providerrK   r       with IPRoyal)urlIPRoyal with WebshareWebsharer   z with ProxyCheap
ProxyCheap   z with 2captcha2Captcha with evomievomi)ranger   warningstrr;   getInspectLinkValidatorcheckIfRequestSuccessfulltimesleepr8   randintgetRequestIPRoyalgetRequestWebsharegetRequestProxyCheapgetRequest2CaptchagetRequestEvomi)r   rV   without_awsrK   _rR   random_proxyproviders          r   getRequestAllAvailableProxiesz,RequestManager.getRequestAllAvailableProxies9   sq   q 	ANN,s3x7+EF))+//R/@H+EExhm  G]  ^H#

1	  &~~a2"03s8;oMN11c1:/IIS[lu  Oe  f'#O03s8;>NNO22s2;/IIS[lv  Pf  g'#O03s8;>PPQ444=/IIS[lx  Rh  i'#O03s8;>NNO22s2;/IIS[lv  Pf  g'#O03s8;mKL//C/8/IIS[ls  Mc  d'#Or   c                 F   t        j                  dt        |      z   dz          | j                         }d}|j                  j                  ||d       	 |j                  |dd      }|S # t        $ r+}t        j                  dt        |      z          Y d }~y d }~ww xY w)	NrN   r]   z=http://kroisalex8:YIcLVEa3mdM4e7KsIW4W@rp-core.evomi.com:1000httpshttp
   chromerP   impersonatezException in getRequestEvomi: )	r   r`   ra   rJ   proxiesupdaterb   	Exceptioncritical)r   rV   rI   
evomi_httprR   es         r   rl   zRequestManager.getRequestEvomit   s    (3s83mCD T
			:zBC	GuuS"(uCHO 	GOO<s1vEFF	Gs   A, ,	B 5!BB c                 &   t        j                  dt        |      z   dz          d}d}d}ddj                  |||      i}	 t	        j
                  ||dd	
      }|S # t        $ r+}t        j                  dt        |      z          Y d }~y d }~ww xY w)NrN   z with 2Captchazu9c85bfe1559a05bf-zone-customu9c85bfe1559a05bfz118.193.59.102:2334rs   zhttp://{}:{}@{}ru   rv   )ry   rP   rx   z!Exception in getRequest2Captcha: )r   r`   ra   formatrG   rb   r{   r|   )r   rV   usernamepassword	PROXY_DNSproxyrR   r~   s           r   rk   z!RequestManager.getRequest2Captcha   s    (3s836FFG2&)	*11(HiPQ	JxxUBHUHO 	JOO?#a&HII	Js   A 	B%!BBc                    g d}t        j                  dt        |      z   dz          | j                         }dt	        j
                  |      z   dz   }| j                         }|j                  j                  ||d       	 |j                  |dd	      }|S # t        $ r+}t        j                  d
t        |      z          Y d }~y d }~ww xY w)N)zmArgare1he_region-europe
mArgare1hezmArgare1he_streaming-1z$mArgare1he_region-europe_streaming-1zmArgare1he_region-northamericaz*mArgare1he_region-northamerica_streaming-1rN   rU   zhttp://alex133769:z@91.239.130.34:12321rr   ru   rv   rw   z Exception in getRequestIPRoyal: )r   r`   ra   rJ   r8   r9   rE   ry   rz   rb   r{   r|   )r   rV   iproyal_pwlistrI   iproyal_proxyrandom_ua_entryrR   r~   s           r   rh   z RequestManager.getRequestIPRoyal   s     V(3s83oEF ,v}}^/LLOee//1			=-HI	IuuS"(uCHO 	IOO>QGHH	Is   B 	C"!CCc                    t        j                  dt        |      z   dz          | j                         }t	        j
                  | j                        }|j                  j                  ||d       	 |j                  |dd      }|S # t        $ r+}t        j                  dt        |      z          Y d }~y d }~ww xY w)NrN   rX   rr   ru   rv   rw   z!Exception in getRequestWebshare: )r   r`   ra   rJ   r8   r9   r3   ry   rz   rb   r{   r|   )r   rV   rI   random_proxyrR   r~   s         r   ri   z!RequestManager.getRequestWebshare   s    (3s836FFG }}T%6%67			<FG	JuuS"(uCHO 	JOO?#a&HII	Js   3B	 		B=!B88B=c                     | j                         }d}|j                  j                  ||d       	 |j                  |dd      }|S # t        $ r+}t        j                  dt        |      z          Y d }~y d }~ww xY w)Nz<http://uw0g9g5j:mXC7JRAq3shWe34X@proxy.proxy-cheap.com:31112rr   ru   rv   rw   z#Exception in getRequestProxyCheap: )rJ   ry   rz   rb   r{   r   r|   ra   )r   rV   rI   proxycheap_proxyrR   r~   s         r   rj   z#RequestManager.getRequestProxyCheap   s|     Y			#3=MNO	LuuS"(uCHO 	LOOACFJKK	Ls   A 	A<!A77A<returnc                 P    t        j                         }|j                  |      }|S r/   )r   rH   rb   )r   rV   rI   rs       r   getRequestNakedzRequestManager.getRequestNaked   s"    EE#Jr   c                 T    t        j                         }|j                  ||      }|S )N)r>   )r   rH   post)r   rV   _jsonrI   r   s        r   postRequestNakedzRequestManager.postRequestNaked   s'    FF3UF#r   N)Finspect_links)r(   r)   r*   r   r;   r1   rE   rJ   ra   rp   rl   rk   rh   ri   rj   r   Responser   r   r   r   r   r-   r-       sg    G0
:9\_ 9v
	8h&7&7 
h.?.? r   r-   )r   r!   %requests.packages.urllib3.poolmanagerr   requests.packages.urllib3.utilr   requests.adaptersr   $requests.packages.urllib3.util.retryr   re   r>   r8   LoggingFormatterr   urllib3rc   	curl_cffirG   r    r
   objectr-   r   r   r   <module>r      sP     
 = / ) 6    #   & lS SnV nr   