# -*- coding: utf-8 -*- """爬虫配置文件""" import os # MONGODB MONGO_IP = "172.17.4.87" MONGO_PORT = 27080 MONGO_DB = "py_spider" MONGO_USER_NAME = os.getenv("MONGO_USER_NAME") MONGO_USER_PASS = os.getenv("MONGO_USER_PASS") # REDIS # ip:port 多个可写为列表或者逗号隔开 如 ip1:port1,ip2:port2 或 ["ip1:port1", "ip2:port2"] REDISDB_IP_PORTS = "172.17.4.232:7361" REDISDB_USER_PASS = "k5ZJR5KV4q7DRZ92DQ" REDISDB_DB = 4 # 适用于redis哨兵模式 REDISDB_SERVICE_NAME = os.getenv("REDISDB_SERVICE_NAME") # 浏览器渲染 PLAYWRIGHT = dict( user_agent=None, # 字符串 或 无参函数,返回值为user_agent proxy=None, # xxx.xxx.xxx.xxx:xxxx 或 无参函数,返回值为代理地址 headless=True, # 是否为无头浏览器 driver_type="webkit", # chromium、firefox、webkit timeout=60, # 请求超时时间 window_size=(1024, 800), # 窗口大小 executable_path=None, # 浏览器路径,默认为默认路径 download_path=None, # 下载文件的路径 render_time=0, # 渲染时长,即打开网页等待指定时间后再获取源码 wait_until="networkidle", # 等待页面加载完成的事件,可选值:"commit", "domcontentloaded", "load", "networkidle" use_stealth_js=False, # 使用stealth.min.js隐藏浏览器特征 page_on_event_callback=None, # page.on() 事件的回调 如 page_on_event_callback={"dialog": lambda dialog: dialog.accept()} storage_state_path=None, # 保存浏览器状态的路径 url_regexes=None, # 拦截接口,支持正则,数组类型 save_all=False, # 是否保存所有拦截的接口, 配合url_regexes使用,为False时只保存最后一次拦截的接口 ) # request网络请求超时时间 REQUEST_TIMEOUT = 30 # 等待服务器响应的超时时间,浮点数,或(connect timeout, read timeout)元组 # 设置代理 PROXY_EXTRACT_API = "http://proxy.spdata.jianyu360.com/proxy/getallip" # 代理提取API ,返回的代理分割符为\r\n PROXY_ENABLE = True # 随机headers RANDOM_HEADERS = True # UserAgent类型 支持 'chrome', 'opera', 'firefox', 'internetexplorer', 'safari','mobile' 若不指定则随机类型 USER_AGENT_TYPE = "chrome" # 默认使用的浏览器头 DEFAULT_USERAGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" # requests 使用session USE_SESSION = False # 下载 DOWNLOADER = "network.downloader.RequestsDownloader" SESSION_DOWNLOADER = "network.downloader.RequestsSessionDownloader" RENDER_DOWNLOADER = "network.downloader.PlaywrightDownloader" MAKE_ABSOLUTE_LINKS = True # 自动转成绝对连接 # 企业微信报警 WECHAT_WARNING_URL = "" # 企业微信机器人api WECHAT_WARNING_PHONE = "" # 报警人 将会在群内@此人, 支持列表,可指定多人 WECHAT_WARNING_ALL = False # 是否提示所有人, 默认为False WARNING_INTERVAL = 3600 # 相同报警的报警时间间隔,防止刷屏; 0表示不去重