当前位置: 首页 > news >正文

2023-简单点-proxyPool源码(二)-setting.py

proxyPool

  • setting.py

setting.py

# -*- coding: utf-8 -*-
"""
-------------------------------------------------File Name:     setting.pyDescription :   配置文件Author :        JHaodate:          2019/2/15
-------------------------------------------------Change Activity:2019/2/15:
-------------------------------------------------
"""BANNER = r"""
****************************************************************
*** ______  ********************* ______ *********** _  ********
*** | ___ \_ ******************** | ___ \ ********* | | ********
*** | |_/ / \__ __   __  _ __   _ | |_/ /___ * ___  | | ********
*** |  __/|  _// _ \ \ \/ /| | | ||  __// _ \ / _ \ | | ********
*** | |   | | | (_) | >  < \ |_| || |  | (_) | (_) || |___  ****
*** \_|   |_|  \___/ /_/\_\ \__  |\_|   \___/ \___/ \_____/ ****
****                       __ / /                          *****
************************* /___ / *******************************
*************************       ********************************
****************************************************************
"""VERSION = "2.4.0"# ############### server config ###############
HOST = "0.0.0.0"PORT = 5010# ############### database config ###################
# db connection uri
# example:
#      Redis: redis://:password@ip:port/db
#      Ssdb:  ssdb://:password@ip:port
DB_CONN = 'redis://:@x.x.x.x:x/0'# proxy table name
TABLE_NAME = 'use_proxy'# ###### config the proxy fetch function ######
PROXY_FETCHER = ["freeProxy01","freeProxy02","freeProxy03","freeProxy04","freeProxy05","freeProxy06","freeProxy07","freeProxy08","freeProxy09","freeProxy10","freeProxy11"
]# ############# proxy validator #################
# 代理验证目标网站
HTTP_URL = "http://httpbin.org"HTTPS_URL = "https://www.qq.com"# 代理验证时超时时间
VERIFY_TIMEOUT = 10# 近PROXY_CHECK_COUNT次校验中允许的最大失败次数,超过则剔除代理
MAX_FAIL_COUNT = 0# 近PROXY_CHECK_COUNT次校验中允许的最大失败率,超过则剔除代理
# MAX_FAIL_RATE = 0.1# proxyCheck时代理数量少于POOL_SIZE_MIN触发抓取
POOL_SIZE_MIN = 30# ############# proxy attributes #################
# 是否启用代理地域属性
PROXY_REGION = True# ############# scheduler config ################## Set the timezone for the scheduler forcely (optional)
# If it is running on a VM, and
#   "ValueError: Timezone offset does not match system offset"
#   was raised during scheduling.
# Please uncomment the following line and set a timezone for the scheduler.
# Otherwise it will detect the timezone from the system automatically.TIMEZONE = "Asia/Shanghai"

这段代码是一个配置文件,用于配置一个代理池项目。它定义了一些全局变量和配置选项,用于控制代理池的行为和功能。

代码中的注释已经提供了一些基本的说明,下面是对代码功能的详细解释:

  1. BANNER:定义了一个用于显示的横幅字符串,通常在命令行界面或日志中打印出来,用于标识程序的名称和版本等信息。
  2. VERSION:定义了代理池软件的版本号。
  3. HOSTPORT:定义了代理池服务监听的地址和端口号。
  4. DB_CONN:定义了数据库连接的URI,这里使用的是Redis数据库作为存储代理信息的后端。
  5. TABLE_NAME:定义了代理信息存储的表名。
  6. PROXY_FETCHER:定义了一个列表,包含了用于获取代理的函数名称。这些函数将被周期性地调用,以获取新的代理并加入到代理池中。
  7. HTTP_URLHTTPS_URL:定义了用于验证代理可用性的目标网站URL。
  8. VERIFY_TIMEOUT:定义了代理验证时的超时时间,单位是秒。
  9. MAX_FAIL_COUNTMAX_FAIL_RATE:这两个变量用于控制代理的剔除策略。如果一个代理在近期的校验中失败次数超过MAX_FAIL_COUNT,或者失败率超过MAX_FAIL_RATE,则会被剔除出代理池。
# 当进行代理检查时,如果代理数量少于POOL_SIZE_MIN,则触发抓取新的代理。
POOL_SIZE_MIN = 30

上述代码定义了一个常量POOL_SIZE_MIN,其值为30。这意味着,当系统检测到可用代理的数量少于30时,它会触发一个机制去抓取或寻找更多的代理,以确保系统中始终有足够数量的代理。


# 是否启用代理地域属性
PROXY_REGION = True

这里定义了一个布尔值常量PROXY_REGION,并设置其为True。这意味着系统在处理代理时会考虑代理的地域属性。例如,某些任务可能只希望使用特定地区的代理。


# ############# scheduler config #################

这是一个注释,指示以下的配置是与“调度器”相关的。


# Set the timezone for the scheduler forcely (optional)
# If it is running on a VM, and
#   "ValueError: Timezone offset does not match system offset"
#   was raised during scheduling.
# Please uncomment the following line and set a timezone for the scheduler.
# Otherwise it will detect the timezone from the system automatically.

上述代码是一个注释,解释了以下配置的目的:为调度器强制设置时区(可选)。如果调度器在虚拟机上运行并且在调度期间引发了“ValueError: Timezone offset does not match system offset”这样的错误,则应该取消注释下面的行并为调度器设置一个时区。如果不进行这样的设置,调度器将自动从系统中检测时区。

TIMEZONE = "Asia/Shanghai"

此行定义了一个常量TIMEZONE并为其赋值了"Asia/Shanghai"。这意味着调度器的时区被设置为上海时区。如果上述注释中描述的问题出现,这将是一个有效的解决方案。如果不需要强制设置时区,这行代码可以被注释掉。

http://www.lryc.cn/news/252787.html

相关文章:

  • 中级工程师评审条件:如何成为一名合格的中级工程师
  • StarRocks上新,“One Data、All Analytics”还有多远?
  • Java8实战-总结50
  • kicad源代码研究:参照Candence实现工程管理
  • Asp.net core WebApi 配置自定义swaggerUI和中文注释,Jwt Bearer配置
  • DNS 查询结果逐行解释
  • ArcGIS制作广场游客聚集状态及密度图
  • 同旺科技 USB TO SPI / I2C --- 调试W5500_TCP Client接收数据
  • MQ - KAFKA 高级篇
  • 如何快速查找最后(最右侧)隐藏列
  • 精密制造ERP系统包含哪些模块?精密制造ERP软件是做什么的
  • TypeScript 的高级技巧
  • TiDB 7.x 源码编译之 TiDB Server 篇,及新特性详解
  • Hadoop实验putty文件
  • 研发人员绩效考核难题及解决措施
  • Inference with C# BERT NLP Deep Learning and ONNX Runtime
  • 6、原型模式(Prototype Pattern,不常用)
  • 图像万物分割——Segment Anything算法解析与模型推理
  • Redis实战篇笔记(最终篇)
  • 游戏配置表的导入使用
  • ❀dialog命令运用于linux❀
  • 【算法】蓝桥杯2013国C 横向打印二叉树 题解
  • XunSearch 讯搜 error: storage size of ‘methods_bufferevent’ isn’t known
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(三)——serverless数据分析
  • 08、分析测试执行时间及获取pytest帮助
  • 视频集中存储/智能分析融合云平台EasyCVR平台接入rtsp,突然断流是什么原因?
  • JavaScript 复杂的<三元运算符和比较操作>的组合--案例(一)
  • uniapp搭建内网映射测试https域名
  • 国防科技大博士招生入学考试【50+论文主观题】
  • CUDA简介——编程模式