1. 基本概念
客户端和服务器之间通过网络进行通信
为什么客户端能够正确地找到服务器,服务器也能够正确地找到客户端,涉及到网络中的IP地址
在同一个网络下IP地址是唯一的
客户端和目标服务器之间的中间商
我们通过中间商访问目标服务器,等于我们将需求告诉中间商,中间商根据需求访问目标服务器
应用实例
API_url = 'http://d.jghttp.alicloudecs.com/getip?num=20&type=2&pro=&city=0&yys=0&port=1&pack=48158&ts=0&ys=0&cs=0&lb=1&sb=0&pb=45&mr=1®ions='
Headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
}
ip_response = requests.get(url=API_url, headers=Headers)
print(ip_response.text)
# json数据序列化
ip_data_list = json.loads(ip_response.text)['data']
# 生成列表
ip_port_list = [f'{i["ip"]}:{i["port"]}' for i in ip_data_list]
print(ip_port_list)
# 构造字典
proxy = {
# 拼接上它应该走的协议
'http': f'http://{ip_port_list[0]}',
'https': f'http://{ip_port_list[0]}'
}
URL = 'https://movie.douban.com/top250?start=0&filter='
resp = requests.get(url=URL, headers=Headers, proxies=proxy)
if resp.status_code == 200:
print(resp.text)
else:
print(resp.status_code)