ITPub博客

首页 > IT职业 > IT职场 > 爬虫ip池能改变ip的原理

爬虫ip池能改变ip的原理

IT职场 作者:websurf 时间:2021-09-11 09:48:22 0 删除 编辑

原理

1、存储模块使用Redis的有序集合来表示dialing的去重和状态。

同时也是中心模块和基础模块,连接其他模块。

2、获取模块定期从代理网站获取代理。

将获取的代理传输到存储模块并保存到数据库中。

3、检测模块定期从存储模块获取所有代理。

并检测代理,根据不同的检测结果为代理设置不同的标识。

4、接口模块通过WebAPI连接服务接口。

接口连接数据库,以Web的形式返回可用代理。

实例

from multiprocessing import Process
import time
from api import app
from getter import Getter
from tester import Tester
TESTER_CYCLE = 20
GETTER_CYCLE = 20
TESTER_ENABLED = True
GETTER_ENABLED = True
API_ENABLED = True
class Scheduler():
    """调度模块"""
    def schedule_tester(self, cycle=TESTER_CYCLE):
        """
        定时测试代理
        :param cycle:
        :return:
        """
        tester = Tester()
        while True:
            print("测试器开始运行")
            tester.run()
            time.sleep(cycle)
    def schedule_getter(self, cycle=GETTER_CYCLE):
        """
        定时获取代理
        :param cycle:
        :return:
        """
        getter = Getter()
        while True:
            print("开始抓取代理")
            getter.run()
            time.sleep(cycle)
    def schedule_api(self):
        """
        开启api
        :return:
        """
        app.run()
    def run(self):
        print("代理池开始运行")
        if TESTER_ENABLED:
            test_process = Process(target=self.schedule_tester)
            test_process.start()
        if GETTER_ENABLED:
            getter_process = Process(target=self.schedule_getter)
            getter_process.start()
        if API_ENABLED:
            api_process = Process(target=self.schedule_api)
            api_process.start()
if __name__ == '__main__':
    a = Scheduler()
    a.run()

以上就是爬虫ip池更改ip的原理,推荐大家使用品易http代理ip,千万ip资源百兆带宽,保证爬虫数据传输安全。提供高匿稳定代理ip服务,方便快捷获取网站数据,流量免费测试正在进行!更多Python学习指路:python爬虫

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1499/viewspace-2828792/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    95
  • 访问量
    1057