代理的使用动态代理的使用场景
没钱氪金,所以我用的都是网上的免费代理
免费代理地址如下:http://ip.zdaye.com/dayProxy.html 免费代理很多时候不好用,我用的时候程序报错请求超时,那再换一个代理就好了
socks代理适用的范围最广
urllib
http类型代理
ProxyHandler设置代理,参数是字典类型,键名为协议类型,键值是代理。此处代理需要加上协议,http和https。若请求的是http协议,ProxyHandler会调用http代理。若请求的是https协议,ProxyHandler调用https代理。
创建完ProxyHandler对象之后,我们需要利用build_opener()方法来传入该对象来创建一个Opener,这样就相当于此Opener已经设置好代理了,接下来直接调用Opener对象的open()方法,即可访问我们的链接。
from urllib.request import ProxyHandler,build_opener
proxy="42.51.42.201:808"
proxy_handler=ProxyHandler({ #设置代理
'http':"http://"+proxy, #设置协议
"https":"https://"+proxy #设置协议
})
opener=build_opener(proxy_handler) #代理设置完成
try:
response=opener.open("http://httpbin.org/get")
print(response.read().decode("utf-8"))
except URLError as e:
print(e.reason)
输出如下:
{"args": {},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "Python-urllib/3.7"
},
"origin": "42.51.42.201, 42.51.42.201",
"url": "https://httpbin.org/get"
}
origin字段表明了客户端的IP
如果需要认证改一下proxy就好
SOCKS5类型代理
socks库不支持pip安装,只能下载程序包https://sourceforge.net/projects/socksipy/?source=typ_redirect
将解压好的文件中的socks.py 文件复制到python的安装目录下的Lib文件夹中
requests
http类型代理
import requestsproxy="120.236.130.132:8060"
proxies={
"http":"http://"+proxy,
"https":"https://"+proxy
}
try:
response=requests.get("http://httpbin.org/get",proxies=proxies)
print(response.text)
except requests.exceptions.ConnectionError as e:
print("Error:",e.args)
SOCKS5类型代理
需要安装一个库pip install requests[socks]
proxy="120.24.208.140:1080"
proxies={
"http":"socks5://"+proxy,
"https":"socks5://"+proxy
}
try:
response=requests.get("http://httpbin.org/get",proxies=proxies)
print(response.text)
except requests.exceptions.ConnectionError as e:
print("Error:",e.args)
Selenium(Chrome)
http类型代理
from selenium import webdriverproxy="220.180.156.53:8060"
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument("--proxy-server=http://"+proxy)
browser=webdriver.Chrome(chrome_options=chrome_options)
browser.get("http://httpbin.org/get")
Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理jdk静态代理和动态代理
静态代理、动态代理,以及动态代理的调用说明静态代理和动态代理
#yyds干货盘点# 设计模式之静态代理,jdk动态代理,cglib动态代理的区别jdk静态代理和动态代理
代理模式-动态代理详解(JDK动态代理和CGLIB动态代理)jdk cglib动态代理
代理模式-动态代理(基于接口,JDK动态代理)jdk动态代理和cglib动态代理
Java动态代理之JDK动态代理和CGLib动态代理jdk动态代理
谁与争锋,JDK动态代理大战CGLib动态代理jdk动态代理和cglib动态代理
【设计模式】代理模式 ( 动态代理使用流程 | 创建目标对象 | 创建被代理对象 | 创建调用处理程序 | 动态创建代理对象 | 动态代理调用 )动态代理是代理模式吗