两种方法实现使用ip代理接口获取随机ip

首先使用ip代理接口获取txt格式的ip代理数据,再使用random模块从中随机获取ip


前言

本文使用的是某ip代理网站的动态共享代理,从接口批量获取ip代理并从中随机获取ip


一、生成代理api接口

二、从接口获取ip

class get_ip():
    def __init__(self):
        self.proxy_list = []
        self.proxy_api = 'ip代理链接'
        self.get_proxies()
        self.number = 0

    def get_proxies(self):
        # 使用get方法获取ip
        response = requests.get(self.proxy_api)
        # 以'\n'分割数据
        proxies = response.text.split('\n')
        proxies = proxies[:-1]
        for proxy in proxies:
            # strip()用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
            proxy = proxy.strip()
            # 将'http://127.0.0.1'格式的ip地址加入列表
            self.proxy_list.append('http://' + proxy)

首先定义一个gei_ip类用来获取随机ip

self.proxy_list 用来存放从接口获取的ip

self.proxy_api为ip代理的api链接

三、从ip列表随机获取ip

    def get_random_ip(self):
        # 方法一 每隔10秒重新请求一次接口获取ip
        # if datetime.datetime.now().second % 10 == 0:
        # 方法二 使用一次ip则计数加1,每20次重新请求一次接口获取ip
        self.number += 1
        if self.number % 20 == 0:
            self.proxy_list = []
            self.get_proxies()
        # print(self.proxy_list)
        # print(self.number)
        # 若ip列表为空 则说明正在请求接口 等待一秒
        if not self.proxy_list:
            time.sleep(1)
        proxy_ip = random.choice(self.proxy_list)
        proxies = {'https': proxy_ip,
                   'http': proxy_ip}
        return proxies

总结

两种思路从接口获取随机ip,使用时需进一步考虑错误处理和并发量的问题,自己调整请求接口的频率

猜你喜欢

转载自blog.csdn.net/Achernar0208/article/details/125990107
今日推荐