How can I set a single proxy for a requests session object?

后端 未结 4 1975
走了就别回头了
走了就别回头了 2020-12-15 06:42

I\'m using the Python requests package to send http requests. I want to add a single proxy to the requests session object. eg.

session = requests.Session()
s         


        
相关标签:
4条回答
  • 2020-12-15 06:49

    There are other ways you can set proxies, apart from the solutions you have got so far:

    import requests
    
    with requests.Session() as s:
        # either like this
        s.proxies = {'https': 'http://105.234.154.195:8888', 'http': 'http://199.188.92.69:8000'}
        # or like this
        s.proxies['https'] = 'http://105.234.154.195:8888'
        r = s.get(link)
    
    0 讨论(0)
  • 2020-12-15 06:53

    Hopefully this may lead to an answer:

    urllib3.util.url.parse_url(url) Given a url, return a parsed Url namedtuple. Best-effort is performed to parse incomplete urls. Fields not provided will be None.

    retrived from https://urllib3.readthedocs.org/en/latest/helpers.html

    0 讨论(0)
  • 2020-12-15 07:08

    In fact, you are right, but you must ensure your defination of 'line', I have tried this , it's ok:

    >>> import requests
    >>> s = requests.Session()
    >>> s.get("http://www.baidu.com", proxies={'http': 'http://10.11.4.254:3128'})
    <Response [200]>
    

    Did you define the line like line = ' 59.43.102.33:80', there is a space at the front of address.

    0 讨论(0)
  • 2020-12-15 07:14

    In addition to @neowu' answer, if you would like to set a proxy for the lifetime of a session object, you can also do the following -

    import requests
    proxies = {'http': 'http://10.11.4.254:3128'}
    s = requests.session()
    s.proxies.update(proxies)
    s.get("http://www.example.com")   # Here the proxies will also be automatically used because we have attached those to the session object, so no need to pass separately in each call
    
    0 讨论(0)
提交回复
热议问题