首页 > 代码库 > python之代_理
python之代_理
1.参考 tor?
http://docs.python-requests.org/en/master/user/advanced/
Using Python’s urllib2 or Requests with a SOCKS5 proxy
Python中Request 使用socks5代理的两种方法(个人推荐方法二)
How to make python Requests work via socks proxy
Connecting to a SOCKS Proxy within Python
Should you want to use the SOCKS proxy only with urllib2 then the wrapmodule can be used. This replaces a module‘s socket library with a SOCKS socket[2].
v3.2.0版本中新增的socks5代理设置选项是做什么的?
这个前置代理,应该是给 shadowsocks.exe 本身的代理设置,使得 它 自己走某个代理。因为有些公司,内网环境下需要代理才可以访问外网。
http,socks4,socks5代理的区别
HTTP代理:能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80、8080、3128等;
SOCKS代理:SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP请求,所以SOCKS代理服务器比其他类型的代理服务器速度要快得多。SOCKS代理又分为SOCKS4和SOCKS5,二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。SOCK4能做到的SOCKS5都可得到,但SOCKS5能够做到的SOCK4则不一定能做到,比如我们常用的聊天工具QQ在使用代理时就要求用SOCKS5代理,因为它需要使用UDP协议来传输数据
极客学院 Requests 库的使用
10-穿墙代理的设置
1.5.socket代理
参见《python中的socket代理》可知,更底层的socket代理如下所示:
import socks, socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "proxy_host", proxy_port)
socket.socket = socks.socksocket
需要 socks 库。
Python爬虫进阶七之设置ADSL拨号服务器代理
2.urllib2
import urllib2 req = urllib2.Request(‘http://httpbin.org/ip‘) req_https = urllib2.Request(‘https://httpbin.org/ip‘) proxy_http = urllib2.ProxyHandler({‘http‘:‘http://127.0.0.1:1080‘}) proxy_https = urllib2.ProxyHandler({‘https‘:‘https://127.0.0.1:1080‘}) opener = urllib2.build_opener(proxy_http, proxy_https) # urllib2.install_opener(opener) print urllib2.urlopen(req).read() print urllib2.urlopen(req_https).read() print opener.open(req, timeout=10).read() print opener.open(req_https, timeout=10).read()
3.requests
import requests # proxies={‘http‘: ‘http://127.0.0.1:1080‘, ‘https‘: ‘http://127.0.0.1:1080‘} proxies={‘http‘: ‘socks5://127.0.0.1:1080‘, ‘https‘: ‘socks5://127.0.0.1:1080‘} # s.proxies = proxies print requests.get(‘http://httpbin.org/ip‘).content print requests.get(‘https://httpbin.org/ip‘).content print requests.get(‘http://httpbin.org/ip‘, proxies=proxies, timeout=10).content print requests.get(‘https://httpbin.org/ip‘, proxies=proxies, timeout=10).content
4.更加底层 socket.socket
# pip install requests[socks] import socket import socks import requests default_socket = socket.socket def get(): print urllib2.urlopen(‘http://httpbin.org/ip‘, timeout=10).read() print urllib2.urlopen(‘https://httpbin.org/ip‘, timeout=10).read() print(requests.get(‘http://httpbin.org/ip‘, timeout=10).text) print(requests.get(‘https://httpbin.org/ip‘, timeout=10).text) print ‘no proxy:‘ get() socks.set_default_proxy(socks.SOCKS5, ‘127.0.0.1‘, 1080) socket.socket = socks.socksocket print ‘proxy:‘ get() socket.socket = default_socket print ‘no proxy:‘ get()
python之代_理