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