Python利用requests模块实现代理访问网络
2023-09-11 14:16:59 时间
前言
代理相信很多人都听过,即使没有自己感受到,在无形之中可能也使用过,网络代理作为一项技术,在访问互联网时被广泛使用,那是因为使用代理有着诸多好处。
-
使用代理IP能够突破自身的访问限制,不要把突破限制看成是坏事情,有时后恰恰是为了网络安全才使用了代理,比如内网的一台服务器只针对特定的IP提供访问权限,这时如果给内部人员分配指定的代理就可以进行访问,不比对所有的IP地址都开放,代理IP还可以进行自主管理。
-
使用代理IP还提高访问速度,通常代理IP服务器都配置了一个较大的硬盘缓冲区,当缓冲区中保存有用户的请求信息时,则直接由缓冲区中取出信息,返回给用户,以提高访问速度。
测试环境
PS E:\> python --version
Python 3.6.7
代码实现
其实在Python 3中利用requests
可以很方便的使用代理访问网络,比如下面这个简单的get
方法:
requests.get(target_url, proxies=proxy_data)
其中需要注意的就是 proxies
参数的值,这里换成可以代理的ip就可以了,网上流传着众多的代理IP,只要可用就可以拿来代理IP访问,不过这些免费的IP失效性非常差,常常过几分钟就失效了,下面就给出一个完整的例子,检测代理IP是否可用:
import requests
test_ip = '116.209.56.118'
test_port = '9999'
def test_proxy_request(ip, port):
# 代理IP地址
proxy_data = {
'http': 'http://' + ip + ':' + port,
'https': 'http://' + ip + ':' + port,
}
# 客户端说明
head_data = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0',
'Connection': 'keep-alive'
}
try:
# 该返回当前的IP地址,http://icanhazip.com提供返回当前外网IP的服务
response = requests.get('http://icanhazip.com', headers=head_data, proxies=proxy_data)
outer_ip = response.text.strip().replace('\n', '')
return outer_ip == ip
except:
return False
if __name__ == '__main__':
test_result = test_proxy_request(test_ip, test_port)
if test_result:
print("IP代理成功 ==> {0}:{1}".format(test_ip, test_port))
else:
print("IP代理失败 ==> {0}:{1}".format(test_ip, test_port))
需要注意,其中只有这一句requests.get('http://icanhazip.com', headers=head_data, proxies=proxy_data)
是代理的重点。
测试结果
IP代理成功 ==> 116.209.56.118:9999
相关文章
- python爬虫知识点总结(十九)Scrapy命令行详解
- Python+NumPy绘制常见曲线的方法详解_python
- Python任意参数的数量/预习课python基础
- Python kafka操作实例(kafka-python)
- 【零基础学python】:清华官方出品的《看漫画学Python》全彩PDF,495页资源分享
- 24岁非计算机专业工科妹子裸辞转行Python程序员,自学Python三个月,零基础如何系统学习python,从入门到精通?
- Python零基础入门,2分钟带你了解python
- 【Python】自动化抢勾,python软件安装教程
- 人生苦短,我用Python!为什么现在越来越多的人转行python?
- Python分享:python爬虫可以用来做什么?
- 将自己OpenCV-Python-PyCharm开发环境的Python-3.6.8更换为python-3.9.10的详细过程记录
- Python之str方法
- 《树莓派Python编程入门与实战(第2版)》——3.3 安装Python和工具
- python学习之OpenCV-Python模块的部分应用示例(生成素描图和动漫图)
- 《Python语言程序设计》——2.3 从控制台读取输入
- 当ChatGPT遇见Python
- Python性能优化指南--让你的Python代码快x3倍的秘诀
- 华为OD机试 - 构成的正方形数量(Python) | 机试题+算法思路+考点+代码解析 【2023】
- [Spark][Python]RDD flatMap 操作例子
- Python 基础 之 python 进程知识点整理,实现一个简单使用进程池的多进程文件夹文件copy器
- python requests提示警告InsecureRequestWarning
- Python身份运算符
- 【图像处理】——图像增强Python实现直方图均衡化
- [Python]B站学习笔记---列表(List)