o
    D'hV  ã                   @   sd   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 dd	„ ZG d
d„ dƒZddd„ZdS )z>googlesearch is a Python library for searching Google, easily.é    )Úsleep)ÚBeautifulSoup)Úget)Úunquoteé   )Úget_useragentc	           
   
   C   sB   t dtƒ ddœ| |d ||||dœ|||dddœd	�}	|	 ¡  |	S )
Nzhttps://www.google.com/searchz*/*)z
User-AgentÚAccepté   )ÚqÚnumZhlÚstartÚsafeÚglzPENDING+987ZCAESHAgBEhIaAB)ZCONSENTZSOCS)ÚurlÚheadersÚparamsÚproxiesÚtimeoutÚverifyÚcookies)r   r   Úraise_for_status)
ÚtermÚresultsÚlangr   r   r   r   Ú
ssl_verifyÚregionÚresp© r   úKC:\Users\shubh\Videos\agent\nova\Lib\site-packages\googlesearch/__init__.pyÚ_req	   s*   þúþïr   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚSearchResultc                 C   s   || _ || _|| _d S )N©r   ÚtitleÚdescription)Úselfr   r"   r#   r   r   r   Ú__init__%   s   
zSearchResult.__init__c                 C   s   d| j › d| j› d| j› d�S )NzSearchResult(url=z, title=z, description=ú)r!   )r$   r   r   r   Ú__repr__*   s   zSearchResult.__repr__N)Ú__name__Ú
__module__Ú__qualname__r%   r'   r   r   r   r   r    $   s    r    é
   ÚenNFé   Úactivec              
   c   s¢  � |r|  d¡s|  d¡r||dœnd}|
}d}tƒ }||k rÏt| || |||||||	ƒ	}t|jdƒ}|jddd	�}d}|D ]|}|jd
dd�}|rP|jddd	�nd}|jddd	�}|rr|rr|rr|rpt|d  d¡d  	dd¡ƒnd}|rƒt|d  d¡d  	dd¡ƒnd}||v rŒ|rŒq>| 
|¡ |r–|jnd}|r�|jnd}|d7 }|d7 }|r±t|||ƒV  n|V  ||krº nq>|dkrÁdS |d7 }t|ƒ ||k sdS dS )zSearch the Google search engineÚhttpsÚhttp)r/   r0   Nr   zhtml.parserÚdivZezO2md)Úclass_ÚaT)ÚhrefÚspanZCVA68eZFrIleer4   ú&z/url?q=Ú r   r+   )Ú
startswithÚsetr   r   ÚtextZfind_allÚfindr   ÚsplitÚreplaceÚaddr    r   )r   Znum_resultsr   ÚproxyZadvancedZsleep_intervalr   r   r   r   Z	start_numÚuniquer   r   Zfetched_resultsZfetched_linksr   ZsoupZresult_blockZnew_resultsÚresultZlink_tagZ	title_tagZdescription_tagÚlinkr"   r#   r   r   r   Úsearch.   sJ   €&
ÿ&&
ÿÈrC   )r+   r,   NFr   r-   r.   NNr   F)Ú__doc__Útimer   Zbs4r   Úrequestsr   Úurllib.parser   Zuser_agentsr   r   r    rC   r   r   r   r   Ú<module>   s    
