美文网首页
python中使用代理

python中使用代理

作者: Chaweys | 来源:发表于2021-09-13 23:34 被阅读0次

import socks,socket,urllib2 
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8080)
 temp = socket.socket 
socket.socket = socks.socksocket 
print urllib2.urlopen('http://www.google.com').read()   // Proxy 
socket.socket=temp
 print urllib2.urlopen('http://www.google.com').read()  // No proxy

在每次数据传输前客户端要和服务器建立TCP连接,为节省传输消耗,默认为keep-alive,即连接一次,传输多次,然而在多次访问后不能结束并回到连接池中,导致不能产生新的连接
headers中的Connection默认为keep-alive,
将header中的Connection一项置为close
headers={"Connection":"close"}





import socks
import socket
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 1080)
socket.socket = socks.socksocket
如此设置的代理代表为一个python通道设置了默认代理,基本代表全局了;
但如此设置会影响未使用代理的请求。

因此改进如下:
在requests的请求中添加代理:
session=requests.Session()
session.prixes={"http":"http://127.0.0.1:1080","https":"http://127.0.0.1:1080"}
session.get()

在paramiko中添加代理:
sock=socks.socksocket()
sock.set_proxy(socks.SOCKS5, "127.0.0.1", 1080)
sock.connect((hostname,int(port)))
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
client.connect(hostname=hostname,port=int(port),username=username,pkey=pkey,sock=sock)

相关文章

网友评论

      本文标题:python中使用代理

      本文链接:https://www.haomeiwen.com/subject/ibuqgltx.html