Ë
    SpKg×  ã                   óR   — d dl Z d dlZd dlZd dlmZ d dlZd dlm Z  G d„ de«      Z	y)é    N)Úlogger)Úrequestsc                   óŒ   — e 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                 ó    — || _         || _        y ©N)Úall_sessionsÚwebshare_ips)Úselfr	   r
   s      ú,/var/www/highfloat_scraper/RequestManager.pyÚ__init__zRequestManager.__init__
   s   € Ø(ˆÔØ(ˆÕó    c                 ó@   — t        j                  | j                  «      S r   )ÚrandomÚchoicer	   )r   s    r   ÚgetAWSSessionzRequestManager.getAWSSession   s   € Ü�}‰}˜T×.Ñ.Ó/Ð/r   c                 ó.   — t        j                  «       }|S r   )ÚcffiÚSession)r   Úss     r   ÚgetNewSessionzRequestManager.getNewSession   s   € Ü�L‰L‹NˆØˆr   Úskins_or_inspect_linksc                 óæ  — | j                  «       j                  |d¬«      }t        j                  |d|¬«      }|�|S t	        j
                  d«       t        j                  dd«      }|xdk(  r0 | j                  |¬«      }t        j                  |d|¬«      }|�|S y xd	k(  r0 | j                  |¬«      }t        j                  |d
|¬«      }|�|S y xdk(  r0 | j                  |¬«      }t        j                  |d|¬«      }|�|S y xdk(  r0 | j                  |¬«      }t        j                  |d|¬«      }|�|S y dk(  r/| j                  |¬«      }t        j                  |d|¬«      }|�|S y 	 y )Né   )ÚtimeoutÚAWS)ÚresponseÚproxy_providerr   é   é   )ÚurlÚIPRoyalé   ÚWebshareé   Ú
ProxyCheapé   Ú2CaptchaÚevomi)r   ÚgetÚInspectLinkValidatorÚcheckIfRequestSuccessfullÚtimeÚsleepr   ÚrandintÚgetRequestIPRoyalÚgetRequestWebshareÚgetRequestProxyCheapÚgetRequest2CaptchaÚgetRequestEvomi)r   r!   r   r   Úrandom_proxyproviders        r   ÚgetRequestAllAvailableProxiesz,RequestManager.getRequestAllAvailableProxies   s¨  € ð ×%Ñ%Ó'×+Ñ+¨C¸Ð+Ó<ˆÜ'×AÑAØØ Ø#9ô
ˆð
 ÐØˆOä�J‰J�qŒMä%Ÿ~™~¨a°Ó3Ðà"ÝØ×1Ñ1°cÐ1Ó:�Ü/×IÑIØ%Ø#,Ø+Aô�ð
 Ð'Ø#�OàÝØ×2Ñ2°sÐ2Ó;�Ü/×IÑIØ%Ø#-Ø+Aô�ð
 Ð'Ø#�OàÝØ×4Ñ4¸Ð4Ó=�Ü/×IÑIØ%Ø#/Ø+Aô�ð
 Ð'Ø#�OàÝØ×2Ñ2°sÐ2Ó;�Ü/×IÑIØ%Ø#-Ø+Aô�ð
 Ð'Ø#�OàÛØ×/Ñ/°CÐ/Ó8�Ü/×IÑIØ%Ø#*Ø+Aô�ð
 Ð'Ø#�OàØØr   c                 ód  — | j                  «       }d}|j                  j                  ||dœ«       	 |j                  |dd¬«      }|S # t        j
                  j                  $ r t        j                  d«       Y y t        $ r+}t        j                  dt        |«      z   «       Y d }~y d }~ww xY w)Nz=http://kroisalex8:YIcLVEa3mdM4e7KsIW4W@rp-core.evomi.com:1000©ÚhttpsÚhttpé
   Úchrome©r   ÚimpersonatezEvomi timed out.zException in getRequestEvomi: ©r   ÚproxiesÚupdater*   r   Ú
exceptionsÚTimeoutr   ÚwarningÚ	ExceptionÚcriticalÚstr)r   r!   r   Ú
evomi_httpr   Úes         r   r4   zRequestManager.getRequestEvomib   sŸ   € Ø×ÑÓ ˆØTˆ
Ø	�	‰	×Ñ :°zÑBÔCð	GØ—u‘u˜S¨"¸(�uÓCˆHØˆOøÜ�‰×&Ñ&ò 	/Ü�N‰NÐ-Õ.ð ô ò 	GÜ�O‰OÐ<¼sÀ1»vÑE×FÐFØûð	Gúó   ²A Á2B/Á<B/Â!B*Â*B/c                 óD  — d}d}d}ddj                  |||«      i}	 t        j                  ||dd¬«      }|S # t        j                  j                  $ r t        j                  d	«       Y y t        $ r+}t        j                  d
t        |«      z   «       Y d }~y d }~ww xY w)Nzu9c85bfe1559a05bf-zone-customÚu9c85bfe1559a05bfz118.193.59.102:2334r9   zhttp://{}:{}@{}r;   r<   )r@   r   r>   z2Captcha timed out.z!Exception in getRequest2Captcha: )
Úformatr   r*   rB   rC   r   rD   rE   rF   rG   )r   r!   ÚusernameÚpasswordÚ	PROXY_DNSÚproxyr   rI   s           r   r3   z!RequestManager.getRequest2Captchao   sž   € Ø2ˆØ&ˆØ)ˆ	ØÐ+×2Ñ2°8¸XÀyÓQÐRˆð	JÜ—x‘x ¨U¸BÈHÔUˆHØˆOøÜ�‰×&Ñ&ò 	2Ü�N‰NÐ0Õ1ð ô ò 	JÜ�O‰OÐ?Ä#ÀaÃ&ÑH×IÐIØûð	Jús   �8 ¸2BÁ,BÁ4!BÂBc                 óž  — g d¢}| j                  «       }dt        j                  |«      z   dz   }|j                  j	                  ||dœ«       	 |j                  |dd¬«      }|S # t        j                  j                  $ r t        j                  d«       Y y 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-1zhttp://alex133769:z@91.239.130.34:12321r8   r;   r<   r=   zIPRoyal timed out.z Exception in getRequestIPRoyal: )r   r   r   r@   rA   r*   r   rB   rC   r   rD   rE   rF   rG   )r   r!   Úiproyal_pwlistr   Úiproyal_proxyr   rI   s          r   r0   z RequestManager.getRequestIPRoyal}   sÆ   € ò
ˆð ×ÑÓ ˆà Ü�m‰m˜NÓ+ñ,à$ñ%ð 	ð
 	
�	‰	×Ñ =¸-ÑHÔIð	IØ—u‘u˜S¨"¸(�uÓCˆHØˆOøÜ�‰×&Ñ&ò 	1Ü�N‰NÐ/Õ0ð ô ò 	IÜ�O‰OÐ>ÄÀQÃÑG×HÐHØûð	Iúó   ÁA% Á%2CÂCÂ!!CÃCc                 óž  — | j                  «       }t        j                  | j                  «      }|j                  j                  ||dœ«       	 |j                  |dd¬«      }|S # t        j                  j                  $ r t        j                  d«       Y y t        $ r+}t        j                  dt        |«      z   «       Y d }~y d }~ww xY w)Nr8   r;   r<   r=   zWebshare timed out.z!Exception in getRequestWebshare: )r   r   r   r
   r@   rA   r*   r   rB   rC   r   rD   rE   rF   rG   )r   r!   r   Úrandom_proxyr   rI   s         r   r1   z!RequestManager.getRequestWebshare–   s®   € Ø×ÑÓ ˆÜ—}‘} T×%6Ñ%6Ó7ˆØ	�	‰	×Ñ <¸ÑFÔGð	JØ—u‘u˜S¨"¸(�uÓCˆHØˆOøÜ�‰×&Ñ&ò 	2Ü�N‰NÐ0Õ1ð ô ò 	JÜ�O‰OÐ?Ä#ÀaÃ&ÑH×IÐIØûð	JúrV   c                 ód  — | j                  «       }d}|j                  j                  ||dœ«       	 |j                  |dd¬«      }|S # t        j
                  j                  $ r t        j                  d«       Y y t        $ r+}t        j                  dt        |«      z   «       Y d }~y d }~ww xY w)Nz<http://uw0g9g5j:mXC7JRAq3shWe34X@proxy.proxy-cheap.com:31112r8   r;   r<   r=   zProxyCheap timed out.z#Exception in getRequestProxyCheap: r?   )r   r!   r   Úproxycheap_proxyr   rI   s         r   r2   z#RequestManager.getRequestProxyCheap£   s¦   € Ø×ÑÓ ˆàJð 	ð 	
�	‰	×ÑÐ#3Ð=MÑNÔOð	LØ—u‘u˜S¨"¸(�uÓCˆHØˆOøÜ�‰×&Ñ&ò 	4Ü�N‰NÐ2Õ3ð ô ò 	LÜ�O‰OÐAÄCÈÃFÑJ×KÐKØûð	LúrJ   Úreturnc                 óP   — t        j                  «       }|j                  |«      }|S r   )r   r   r*   )r   r!   r   Úrs       r   ÚgetRequestNakedzRequestManager.getRequestNaked²   s"   € Ü×ÑÓˆØ�E‰E�#‹JˆØˆr   c                 óT   — t        j                  «       }|j                  ||¬«      }|S )N)Újson)r   r   Úpost)r   r!   Ú_jsonr   r]   s        r   ÚpostRequestNakedzRequestManager.postRequestNaked·   s'   € Ü×ÑÓˆØ�F‰F�3˜UˆFÓ#ˆØˆr   N)Úinspect_links)Ú__name__Ú
__module__Ú__qualname__r   r   r   rG   r6   r4   r3   r0   r1   r2   r   ÚResponser^   rc   © r   r   r   r   	   sd   „ ò)ò0òð
 2AñKØ+.óKòZòòò2òð h×&7Ñ&7ó ð
¨h×.?Ñ.?ô r   r   )
r   r-   r   ÚLoggingFormatterr   r+   Ú	curl_cffir   Úobjectr   ri   r   r   ú<module>rm      s%   ðÛ Û Û Ý #Û Ý &ôq�Võ qr   