• Почему парсер выдает 403 авито?

    @Anton27 Автор вопроса
    Всем привет, ребят!
    Большое спасибо за ваши ответы, решение было очень простым, нужно более детально заполнять шапку, брать готовые куки, их вы можете самостоятельно скачать(много плагинов для гугла). В общем, это все.
    Вот код одного из решения этого вопроса
    import ssl
    import requests
    
    from requests.adapters import HTTPAdapter
    from urllib3.poolmanager import PoolManager
    from urllib3.util import ssl_
    
    CIPHERS = """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-SHA"""
    
    class TlsAdapter(HTTPAdapter):
    
        def __init__(self, ssl_options=0, **kwargs):
            self.ssl_options = ssl_options
            super(TlsAdapter, self).__init__(**kwargs)
    
        def init_poolmanager(self, *pool_args, **pool_kwargs):
            ctx = ssl_.create_urllib3_context(ciphers=CIPHERS, cert_reqs=ssl.CERT_REQUIRED, options=self.ssl_options)
            self.poolmanager = PoolManager(*pool_args, ssl_context=ctx, **pool_kwargs)
    
    session = requests.session()
    adapter = TlsAdapter(ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1)
    session.mount("http://", adapter)
    
    try:
        r = session.request('GET', 'http://www.avito.ru')
        print(r.status_code)
    except Exception as exception:
        print(exception)
    Ответ написан
    4 комментария