如何在requests.session中使用代理?

huangapple go评论120阅读模式
英文:

How do i use proxy with requests.session

问题

  1. 嗨,我尝试在会话中执行以下操作:
  2. <code>with requests.Session() as ses:</code>
  3. <code>s = ses.get(f"URL")</code>
  4. 我的代理格式是:http://username:password@url_of_proxyprovider:port
  5. 我尝试在这种情况下使用以下代码:<code>ses.proxies.update(proxy)</code>,但没有起作用。
  6. 也尝试过这个,但没效果:<code>s.proxies = {'proxy'}</code>
  7. 还尝试过像这样添加代理:<code>s = ses.get(f"url", proxies=proxy)</code>
  8. 始终使用我的IP,而不是代理。
英文:

Hi i am trying to do an action with a session like this:
<code>with requests.Session() as ses:</code>
<code>s = ses.get(f"URL")</code>

my proxy format is: http://username:password@url_of_proxyprovider:port

i tried using in this case: <code>ses.proxies.update(proxy)</code> but it didnt work.
also tried this, but didnt work: <code>s.proxies = {'proxy'}</code>
also tried adding proxy like this: <code>s = ses.get(f"url", proxies=proxy)</code>
its always done through my IP and not through the proxy.

答案1

得分: 0

将评论转换为答案。

正确的方法是:

  1. import requests
  2. with requests.Session() as session:
  3. session.proxies = {
  4. 'http': 'http://username:password@url_of_proxyprovider:port',
  5. 'https': 'http://username:password@url_of_proxyprovider:port'
  6. }
  7. url = 'http://mywebsite.com/example'
  8. response = session.get(url)

如果你想代理FTP,也可以将其添加到proxies字典中:

  1. session.proxies = {
  2. 'http': 'http://username:password@url_of_proxyprovider:port',
  3. 'https': 'http://username:password@url_of_proxyprovider:port',
  4. 'ftp': 'http://username:password@url_of_proxyprovider:port'
  5. }
英文:

Converting comment to answer.

The correct way to do it:

  1. import requests
  2. with requests.Session() as session
  3. session.proxies = {
  4. &#39;http&#39;: &#39;http://username:password@url_of_proxyprovider:port&#39;,
  5. &#39;https&#39;: &#39;http://username:password@url_of_proxyprovider:port&#39;
  6. }
  7. url = &#39;http://mywebsite.com/example&#39;
  8. response = session.get(url)

If you want to proxy FTP also, you can add it to the proxies dictionary:

  1. session.proxies = {
  2. &#39;http&#39;: &#39;http://username:password@url_of_proxyprovider:port&#39;,
  3. &#39;https&#39;: &#39;http://username:password@url_of_proxyprovider:port&#39;,
  4. &#39;ftp&#39;: &#39;http://username:password@url_of_proxyprovider:port&#39;
  5. }

答案2

得分: 0

以下是翻译好的代码部分:

  1. 这里是一些示例
  2. import requests
  3. proxies = {'http': 'http://10.11.4.254:3128'}
  4. s = requests.session()
  5. s.proxies.update(proxies)
  6. s.get("http://www.example.com")
  7. 或者在每个会话请求中传递代理
  8. import requests
  9. proxies = {'http': 'http://10.11.4.254:3128'}
  10. s = requests.session()
  11. s.get("http://www.example.com", proxies=proxies)
英文:

Here are some example of it.

  1. import requests
  2. proxies = {&#39;http&#39;: &#39;http://10.11.4.254:3128&#39;}
  3. s = requests.session()
  4. s.proxies.update(proxies)
  5. s.get(&quot;http://www.example.com&quot;)

or with each session request you can pass proxy

  1. import requests
  2. proxies = {&#39;http&#39;: &#39;http://10.11.4.254:3128&#39;}
  3. s = requests.session()
  4. s.get(&quot;http://www.example.com&quot;,proxies=proxies)

huangapple
  • 本文由 发表于 2023年7月6日 19:02:13
  • 转载请务必保留本文链接:https://go.coder-hub.com/76628136.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定