当前位置: 首页 > 面试题库 >

将urllib2与SOCKS代理一起使用

侯兴为
2023-03-14
问题内容

每个开启器基本版本是否可以通过一个袜子服务器上的SOCKS代理使用urllib2来获取页面?我已经看到了使用setdefaultproxy方法的解决方案,但是我需要在不同的开瓶器中使用不同的袜子。

因此,有一个SocksiPy库,它很好用,但是必须以这种方式使用:

import socks
import socket
socket.socket = socks.socksocket
import urllib2
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "x.x.x.x", y)

也就是说,它为所有urllib2请求设置相同的代理。如何为不同的开瓶器使用不同的代理?


问题答案:

尝试使用pycurl:

import pycurl
c1 = pycurl.Curl()
c1.setopt(pycurl.URL, 'http://www.google.com')
c1.setopt(pycurl.PROXY, 'localhost')
c1.setopt(pycurl.PROXYPORT, 8080)
c1.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)

c2 = pycurl.Curl()
c2.setopt(pycurl.URL, 'http://www.yahoo.com')
c2.setopt(pycurl.PROXY, 'localhost')
c2.setopt(pycurl.PROXYPORT, 8081)
c2.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)

c1.perform() 
c2.perform()


 类似资料:
  • 我正在使用ssh-D创建套接字代理,想知道如何使用pip(或easy\u install)吗?我找到了这个问题,但那是一个http代理。 另外,请给我一个在OS X下工作的解决方案。(我尝试了proxifier,它可以与pip安装一起工作,但不能与sudo pip安装一起工作)

  • 问题内容: 我想使用standard从node.js发出传出HTTP调用。但是我无法直接从网络访问远程服务器,需要通过代理。 如何告诉node.js使用代理? 问题答案: 关于使用HTTP代理,Tim Macfarlane 的答案很接近。 使用HTTP代理(用于非安全请求)非常简单。您连接到代理并正常发出请求,只是路径部分包含完整的url,并且主机标头设置为您要连接的主机。 Tim与他的回答非常接

  • 我想通过主机上的Fiddler应用程序从仿真设备捕获所有流量。经过我所有的尝试,我最终得到了无限数量的超时CONNECT请求,即使是在HTTP(非HTTPS)请求上。 我所做的: Android模拟器代理设置: 小提琴手设置: 将以下行添加到主机主机文件:和Android设备主机文件:。这样做是为了1)防止Chrome强制切换到HTTPS 2)将此名称指向正确的IP地址,因为它在主机和Androi

  • 问题内容: 我打开网址: 我想做的是用同样的方式连接到我在某处告诉我的代理: 但这也不起作用。 我知道urllib2具有类似代理处理程序的功能,但是我不记得该功能了。 问题答案:

  • 问题内容: 我打开网址: 我想做的就是以相同的方式连接到我在某处告诉我的代理: 但这也不起作用。 我知道urllib2具有类似代理处理程序的功能,但是我无法回忆起该功能。 问题答案:

  • 我编写了一个SOCKS代理,如果关闭链接,它可以同时处理HTTP和HTTPS流量。 如果链接已打开并且转发主机和端口属于过滤HTTP代理,则只有HTTP流量可以流动。HTTPS流量不流动并报告SSL错误。 请注意,当请求直接来自浏览器而不是SOCKS服务器时,HTTP代理会处理HTTPS流量。 例如,如果我向https://www.google.com出现以下情况: 1)客户端发送SOCKS 5问