代理服务器
1.代理的常用功能?
1.突破自身IP访问限制,访问国外站点.
2.访问一些单位或团体内部资源
扩展: 某大学FTP(前提是该代理地址在该资源的允许访问范国之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
3.提高访问速度
扩展: 通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
4.隐藏真实IP
扩展: 上网者也可以通过这种方法隐藏自己的IP,免受攻击
2.代码配置代理
创建Reuqest对象
创建ProxyHandler对象
用handler对象创建opener对象
使用opener.open函数发送请求
import urllib.request
url = 'http://www.baidu.com/s?wd=ip'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'Cookie':'BIDUPSID=42683067CCF29695FD9ACA9BFF54931F; PSTM=1694483572; BAIDUID=42683067CCF29695BF548F434573CF15:FG=1; BD_UPN=12314753; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=39315_39366_39354_39097_39198_39261_39358_39233_26350_22157; H_PS_645EC=aff9Eg9wZWq3nJR7ulDEvecivRYSWfkoFHdHPeZOhHyywoS9XxPk%2Bcn5cN0; BA_HECTOR=258g050ga5a5al8l8l01al0g1igcsrt1o; delPer=0; BD_CK_SAM=1; PSINO=2; BDSVRTM=228; ZFY=A8PjUOVU39ZpvpyCAlrCkJli1u8BfcAenHpQ9C94tUQ:C; BAIDUID_BFESS=42683067CCF29695BF548F434573CF15:FG=1; COOKIE_SESSION=61911_0_1_1_7_3_1_0_1_1_1_0_3334_0_0_0_1694859260_0_1694921169%7C5%230_0_1694921597%7C1%7C1'
}
request = urllib.request.Request(url=url, headers=headers)
proxies = {
'http':'182.140.244.163:8118'
}
handler = urllib.request.ProxyHandler(proxies=proxies)
opener = urllib.request.build_opener(handler)
response = opener.open(request)
content = response.read().decode('utf-8')
with open('baidu.html', 'w', encoding='utf-8')as fp:
fp.write(content)