setting.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. # -*- coding: utf-8 -*-
  2. """爬虫配置文件"""
  3. import datetime
  4. import os
  5. import sys
  6. # MONGODB
  7. MONGO_IP = "172.17.4.87"
  8. MONGO_PORT = 27080
  9. MONGO_DB = "py_spider"
  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 = 10
  15. # 数据入库的pipeline,可自定义,默认RedisPipeline
  16. ITEM_PIPELINES = [
  17. # "feapder.pipelines.mongo_pipeline.MongoPipeline",
  18. "feapder.pipelines.swordfish.redis_pipeline.RedisPipeline"
  19. ]
  20. # 导出数据时最大的失败次数,包括保存和更新,超过这个次数报警
  21. EXPORT_DATA_MAX_FAILED_TIMES = 5
  22. # 导出数据时最大的重试次数,包括保存和更新,超过这个次数则放弃重试
  23. EXPORT_DATA_MAX_RETRY_TIMES = 5
  24. COLLECTOR_TASK_COUNT = 100 # 每次获取任务数量
  25. # 爬虫
  26. SPIDER_THREAD_COUNT = 1 # 爬虫并发数,追求速度推荐32
  27. SPIDER_MAX_RETRY_TIMES = 3 # 每个请求最大重试次数
  28. # 浏览器渲染
  29. WEBDRIVER = dict(
  30. server_addr="http://172.17.4.232:6666/wd/hub", # selenium 远程服务地址
  31. version="", # 浏览器版本。不指定版本时,随机分发,版本详见群公告
  32. pool_size=1, # 浏览器的数量
  33. load_images=False, # 是否加载图片
  34. user_agent=None, # 字符串 或 无参函数,返回值为user_agent
  35. headless=True, # 是否为无头浏览器
  36. proxy=None, # xxx.xxx.xx.xxx:xxxx 或 无参函数,返回值为代理地址
  37. driver_type="FIREFOX", # CHROME、FIREFOX、EDGE
  38. timeout=30, # 请求超时时间
  39. executable_path=None, # 浏览器路径,默认为默认路径
  40. usages_local_driver=True, # 是否使用本地驱动,默认启动本地驱动
  41. window_size=(1280, 800), # 窗口大小
  42. render_time=0, # 渲染时长,即打开网页等待指定时间后再获取源码
  43. custom_argument=["--ignore-certificate-errors"], # 自定义浏览器渲染参数
  44. service_log_path=os.devnull # 日志路径,默认置空
  45. )
  46. # 爬虫启动时,重新入库失败的item
  47. RETRY_FAILED_ITEMS = True
  48. # 保存失败的request
  49. SAVE_FAILED_REQUEST = False
  50. # request网络请求超时时间
  51. REQUEST_TIMEOUT = 60
  52. # 调度器,存放item与request的根目录
  53. REDIS_KEY = "fwork"
  54. # 设置代理,代理提取API ,返回的代理分割符为\r\n
  55. PROXY_EXTRACT_API = "http://proxy.spdata.jianyu360.com/proxy/getallip"
  56. PROXY_ENABLE = True
  57. # item去重
  58. ITEM_FILTER_ENABLE = True # item 去重
  59. ITEM_FILTER_SETTING = dict(
  60. filter_type=5, # 永久去重(BloomFilter) = 1 、内存去重(MemoryFilter) = 2、 临时去重(ExpireFilter)= 3、 轻量去重(LiteFilter)= 4、集群去重(SwordFishFilter)= 5
  61. expire_time=63072000, # 过期时间2年
  62. redis_url=["172.17.4.239:2479", "172.17.4.240:2579", "172.17.4.84:2379"], # 集群节点
  63. )
  64. # 企业微信报警
  65. WECHAT_WARNING_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=-4e26-a563-cd6b07b9db14" # 企业微信机器人api
  66. WECHAT_WARNING_PHONE = "swordFish" # 报警人 将会在群内@此人, 支持列表,可指定多人
  67. WECHAT_WARNING_ALL = True # 是否提示所有人, 默认为False
  68. # 时间间隔
  69. WARNING_INTERVAL = 360 # 相同报警的报警时间间隔,防止刷屏; 0表示不去重
  70. WARNING_LEVEL = "ERROR" # 报警级别, DEBUG / ERROR
  71. WARNING_FAILED_COUNT = 2 # 任务失败数 超过WARNING_FAILED_COUNT则报警
  72. # 日志设置
  73. DTIME = datetime.datetime.now().strftime("%Y-%m-%d")
  74. LOG_NAME = os.path.split(sys.argv[0])[-1].split(".")[0]
  75. LOG_PATH = "log/%s/%s.log" % (DTIME, LOG_NAME) # log存储路径
  76. LOG_LEVEL = "ERROR"
  77. LOG_COLOR = True # 是否带有颜色
  78. LOG_IS_WRITE_TO_CONSOLE = True # 是否打印到控制台
  79. LOG_IS_WRITE_TO_FILE = True # 是否写文件
  80. LOG_MODE = "w" # 写文件的模式
  81. LOG_MAX_BYTES = 10 * 1024 * 1024 # 每个日志文件的最大字节数
  82. LOG_BACKUP_COUNT = 20 # 日志文件保留数量
  83. LOG_ENCODING = "utf8" # 日志文件编码
  84. OTHERS_LOG_LEVAL = "ERROR" # 第三方库的log等级 一般用不到
  85. # elk服务
  86. LOG_IS_SEND_TO_LOGSTASH = False
  87. LOGSTASH_IP = "47.95.151.156" # 已失效("47.95.151.156")
  88. LOGSTASH_PORT = 5044
  89. # 自建代理池
  90. SWORDFISH_PROXY_URL = "http://cc.spdata.jianyu360.com/crawl/proxy/socks5/fetch"
  91. SWORDFISH_PROXY_AUTHOR = "Basic amlhbnl1MDAxOjEyM3F3ZSFB"
  92. # splash 渲染服务
  93. SWORDFISH_RENDER_URL = "http://59.110.6.43:8998/render.json"
  94. # 爬虫心跳
  95. HEARTBEAT_TABLE = "spider_heartbeat" # 爬虫采集心跳记录表名
  96. # 远程bucket配置
  97. ALI_BUCKET_CONFIG = {
  98. "key_id": "LTAI4G5x9aoZx8dDamQ7vfZi",
  99. "key_secret": "Bk98FsbPYXcJe72n1bG3Ssf73acuNh",
  100. "endpoint": "oss-cn-beijing-internal.aliyuncs.com",
  101. "bucket_name": "jy-datafile"
  102. }