setting.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # -*- coding: utf-8 -*-
  2. """爬虫配置文件"""
  3. import os
  4. # MONGODB
  5. MONGO_IP = "172.17.4.87"
  6. MONGO_PORT = 27080
  7. MONGO_DB = "py_spider"
  8. MONGO_USER_NAME = os.getenv("MONGO_USER_NAME")
  9. MONGO_USER_PASS = os.getenv("MONGO_USER_PASS")
  10. # REDIS
  11. # ip:port 多个可写为列表或者逗号隔开 如 ip1:port1,ip2:port2 或 ["ip1:port1", "ip2:port2"]
  12. REDISDB_IP_PORTS = "172.17.4.232:7361"
  13. REDISDB_USER_PASS = "k5ZJR5KV4q7DRZ92DQ"
  14. REDISDB_DB = 4
  15. # 适用于redis哨兵模式
  16. REDISDB_SERVICE_NAME = os.getenv("REDISDB_SERVICE_NAME")
  17. # 浏览器渲染
  18. PLAYWRIGHT = dict(
  19. user_agent=None, # 字符串 或 无参函数,返回值为user_agent
  20. proxy=None, # xxx.xxx.xxx.xxx:xxxx 或 无参函数,返回值为代理地址
  21. headless=True, # 是否为无头浏览器
  22. driver_type="webkit", # chromium、firefox、webkit
  23. timeout=60, # 请求超时时间
  24. window_size=(1024, 800), # 窗口大小
  25. executable_path=None, # 浏览器路径,默认为默认路径
  26. download_path=None, # 下载文件的路径
  27. render_time=0, # 渲染时长,即打开网页等待指定时间后再获取源码
  28. wait_until="networkidle", # 等待页面加载完成的事件,可选值:"commit", "domcontentloaded", "load", "networkidle"
  29. use_stealth_js=False, # 使用stealth.min.js隐藏浏览器特征
  30. page_on_event_callback=None, # page.on() 事件的回调 如 page_on_event_callback={"dialog": lambda dialog: dialog.accept()}
  31. storage_state_path=None, # 保存浏览器状态的路径
  32. url_regexes=None, # 拦截接口,支持正则,数组类型
  33. save_all=False, # 是否保存所有拦截的接口, 配合url_regexes使用,为False时只保存最后一次拦截的接口
  34. )
  35. # request网络请求超时时间
  36. REQUEST_TIMEOUT = 30 # 等待服务器响应的超时时间,浮点数,或(connect timeout, read timeout)元组
  37. # 设置代理
  38. PROXY_EXTRACT_API = "http://proxy.spdata.jianyu360.com/proxy/getallip" # 代理提取API ,返回的代理分割符为\r\n
  39. PROXY_ENABLE = True
  40. # 随机headers
  41. RANDOM_HEADERS = True
  42. # UserAgent类型 支持 'chrome', 'opera', 'firefox', 'internetexplorer', 'safari','mobile' 若不指定则随机类型
  43. USER_AGENT_TYPE = "chrome"
  44. # 默认使用的浏览器头
  45. 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"
  46. # requests 使用session
  47. USE_SESSION = False
  48. # 下载
  49. DOWNLOADER = "network.downloader.RequestsDownloader"
  50. SESSION_DOWNLOADER = "network.downloader.RequestsSessionDownloader"
  51. RENDER_DOWNLOADER = "network.downloader.PlaywrightDownloader"
  52. MAKE_ABSOLUTE_LINKS = True # 自动转成绝对连接
  53. # 企业微信报警
  54. WECHAT_WARNING_URL = "" # 企业微信机器人api
  55. WECHAT_WARNING_PHONE = "" # 报警人 将会在群内@此人, 支持列表,可指定多人
  56. WECHAT_WARNING_ALL = False # 是否提示所有人, 默认为False
  57. WARNING_INTERVAL = 3600 # 相同报警的报警时间间隔,防止刷屏; 0表示不去重