python-requests库设置代理ip格式

使用requests库代理ip设置,官方文档给出的方法是
python-requests库设置代理ip格式_第1张图片
也就是以字典的形式,‘协议’:‘协议://ip:端口’
但我发现有些人省掉第二个协议,直接写出 ‘协议’:‘ip:端口’,这种方式是否能正常访问呢?
在网上找了几个代理ip试了一下
代码如下
python-requests库设置代理ip格式_第2张图片
用了两个网址,一个为http协议,一个为https


先测试一下proxy1,是否能正常代理
python-requests库设置代理ip格式_第3张图片


proxy1可以,那proxy3更不要说
python-requests库设置代理ip格式_第4张图片
意料之中


测试一下https的
python-requests库设置代理ip格式_第5张图片
无论点多少次,总是会报错,可见这样是不行


测试proxy4看看
python-requests库设置代理ip格式_第6张图片
没问题,可以代理


得出结论:
http协议可以省略,但https不可以,所以,无论是http还是https,以防万一,都不要省略,都要按官方格式写上。


自动选择代理ip

官方给出的举例字典有两个值的,requests库会根据需要自动选择不同协议的ip吗?
测试代码
python-requests库设置代理ip格式_第7张图片
打乱顺序

https

proxy1
python-requests库设置代理ip格式_第8张图片


proxy2
python-requests库设置代理ip格式_第9张图片
结论:
说明requests库代理会根据协议不同选择
但存在多个相同协议的代理ip顺序又是怎样的呢,还是随机的呢?


代理ip顺序

测试代码
python-requests库设置代理ip格式_第10张图片
打乱成4种顺序,分别一一测试


proxy1

python-requests库设置代理ip格式_第11张图片


proxy2

python-requests库设置代理ip格式_第12张图片


proxy3

python-requests库设置代理ip格式_第13张图片


proxy4

python-requests库设置代理ip格式_第14张图片


结论:
如果存在多个相同协议的代理ip,requests库不会随机选择,但会根据不同协议进行选择,选择顺序是从最后一个开始

你可能感兴趣的:(爬虫学习)