上一小节我们学习了requests解决乱码的方法,本小节我们讲解一下requests设置代理的方法。
代理基本原理
代理实际上指的就是代理服务器, 英文叫作proxy server ,它的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站。在我们正常请求一个网站时,是发送了请求给web 服务器,web 服务器把响应传回给我们。如果设置了代理服务器, 实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向web 服务器发起请求,而是向代理服务器发出请求, 请求会发送给代理服务器, 然后由代理服务器再发送给web 服务器, 接着由代理服务器再把web 服务器返回的响应转发给本机。这样我们同样可以正常访问网页,但这个过程中web 服务器识别出的真实IP 就不再是我们本机的IP 了,就成功实现了IP 伪装,这就是代理的基本原理。
代理的作用
1、突破自身IP 访问限制, 访问一些平时不能访问的站点。
2、访问一些单位或团体内部资源: 比如使用教育网内地址段免费代理服务器, 就可以用于对教育网开放的各类FTP 下载上传, 以及各类资料查询共享等服务。
3、提高访问速度: 通常代理服务器都设置一个较大的硬盘缓冲区, 当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取屮信息传给用户,以提高访问速度。
4、隐藏真实IP :上网者也可以通过这种方法隐藏自己的IP ,免受攻击。对于爬虫来说,我们用代理就是为了隐藏自身IP ,防止自身的被封锁。
使用proxies参数设置代理
使用proxies参数可以轻松设置代理。以下是使用proxies参数设置代理的示例:
import requests
url = 'https://www.example.com/api/users'
proxies = {'http': 'http://127.0.0.1:8888', 'https': 'https://127.0.0.1:8888'}
response = requests.get(url, proxies=proxies)
print(response.json())
在上面的示例中,我们使用requests库发送了一个GET请求到https://www.example.com/api/users,并使用proxies参数设置了请求的代理。其中,http和https分别表示HTTP和HTTPS协议,127.0.0.1:8888表示代理服务器的IP地址和端口号。
使用环境变量设置代理
import requests
import os
url = 'https://www.example.com/api/users'
os.environ['http_proxy'] = 'http://127.0.0.1:8888'
os.environ['https_proxy'] = 'https://127.0.0.1:8888'
response = requests.get(url)
print(response.json())
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走,希望可以帮助到大家!