【Python爬虫实例学习篇】——2、获取免费IP代理

由于在使用爬虫时经常会检查IP地址,因此有必要找到一个获取IP代理的地方。经过苦苦寻找,终于找到了一个质量还算过得去同时提供API接口的免费代理网站,下面是API的封装过程。

使用工具

1.Python 3.6
2.requests库
3.免费代理网站

获取一个免费代理

该免费代理网站提供了两个,一个是提供一个免费代理,另一个是提供一页免费代理(一页最多15个)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests

def GetFreeProxy():
# 获取一个免费代理
url='https://www.freeip.top/api/proxy_ip'
ip=list(range(1))
try:
res=requests.get(url=url,timeout=20)
# 将返回数据进行json解析
result = res.json()
ip[0]=result['data']['ip']+':'+result['data']['port']
return ip
except Exception:
print('获取代理ip失败!正在重试···')
# 异常重调
GetFreeProxy()
return 0

获取一页免费代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def GetFreeProxyList(page=1,country='all',isp='None',rder_by='validated_at',order_rule='DESC'):
# 获取一个免费代理列表
#(以下参数是开发文档上提供的,但并未提供提交方法,就先放这里了)
# 参数名 数据类型 必传 说明 例子
# page int N 第几页 1
# country string N 所属国 中国,美国
# isp string N ISP 电信,阿里云
# order_by string N 排序字段 speed:响应速度,validated_at:最新校验时间 created_at:存活时间
# order_rule string N 排序方向 DESC:降序 ASC:升序
url='https://www.freeip.top/api/proxy_ips'
try:
res = requests.get(url=url,timeout=20)
result = res.json()
# 将返回数据进行json解析
ip=list(range(int(result['data']['to'])))
for i in range(int(result['data']['to'])):
ip[i]=result['data']['data'][i]['ip'] + ':' + result['data']['data'][i]['port']
return ip
except Exception:
print('获取代理ip列表失败!正在重试···')
GetFreeProxyList()
return 0

结果展示

获取一个免费代理
获取一个免费代理
获取一页免费代理
获取一页免费代理

==微信公众号:==

小术快跑