zoukankan      html  css  js  c++  java
  • 十一、Scrapy的Settings

      Scrapy设置(settings)提供了定制Scrapy组件的方法,可以控制包括核心(core),插件(extension),pipeline以及spider组件。

      官方文档:https://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/settings.html#topics-settings-ref

    1、`BOT_NAME`

      (1)默认:"scrapybot"

      (2)当使用startproject命令创建项目时其也被自动赋值

    2、`CONCURRENT_ITEMS`

      (1)默认:100

      (2)Item Processor(即Item Pipeline)同时处理(每个response的)item的最大值

    3、`CONCURRENT_REQUESTS`

      (1)默认:16

      (2)Scrapy downloader并发送请求(concurrent requests)的最大值

    4、`DEFAULT_REQUEST_HEADERS`

      (1)默认:

    {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en',
    }

      (2)Scrapy HTTP Request使用的默认header

    5、`DEPTH_LIMIT`

      (1)默认:0

      (2)爬取网站最大允许的深度(depth)值。如果为0,则表示没有限制

    6、`DOWNLOAD_DELAY`

      (1)默认:0

      (2)下载器在下载同一个网站下一个页面前需要等待的时间。该选项可以用来限制爬取速度,减轻服务器压力。同时支持小数:`DOWNLOAD_DELAY=0.25`

      (3)默认情况下,Scrapy在两个请求间不等待一个固定的值, 而是使用0.5到1.5之间的一个随机值 * DOWNLOAD_DELAY 的结果作为等待间隔

    7、`DOWNLOAD_TIMEOUT`

      (1)默认:180

      (2)下载器超时时间(单位:秒)

    8、`ITEM_PIPELINES`

      (1)默认:{}

      (2)保存项目中启用的pipeline及其顺序的字典。该字典默认为空,值(value)任意,值习惯设置在0~1000范围内,值越小优先级越高。    

    ITEM_PIPELINES = {
    'mySpider.pipelines.SomethingPipeline': 300,
    'mySpider.pipelines.JsonPipeline': 800,
    }

    9、`LOG_ENABLED`

      (1)默认:True

      (2)是否启用logging

    10、`LOG_ENCODING`

      (1)默认:"utf-8"

      (2)logging使用的编码

    11、`LOG_LEVEL`

      (1)默认:"DEBUG"

      (2)log的最低级别,可选的级别有:CRITICAL、ERROR、WARNING、INFO、DEBUG

    12、`USER_AGENT`

      (1)默认:"Scrapy/VERSION (+http://scrapy.org)"

      (2)爬取的默认User-Agent,除非被覆盖

    13、`PROXIES:代理设置`

    PROXIES = [
      {'ip_port': '111.11.228.75:80', 'password': ''},
      {'ip_port': '120.198.243.22:80', 'password': ''},
      {'ip_port': '111.8.60.9:8123', 'password': ''},
      {'ip_port': '101.71.27.120:80', 'password': ''},
      {'ip_port': '122.96.59.104:80', 'password': ''},
      {'ip_port': '122.224.249.122:8088', 'password':''},
    ]

    14、COOKIES_ENABLED=False

      (1)禁用Cookies

    15、在scrapy中使用

      (1)通过from settings import ...导入

      (2)在myspider.py文件中,能够通过self.settings的方式访问到:`self.settings["..."]`或`self.settings.get()`

        在pipeline中,因为传入的spider对应爬虫文件本身,所有通过`spider.settings["..."]`等方式可以访问到。

    16、TELNETCONSOLE_ENABLED

      ```

      # telnet用于查看当前爬虫的信息,操作爬虫等

      # 使用telnet ip port,然后通过命令操作

      TELNETCONSOLE_ENABLED = True

      TELNETCONSOLE_HOST = '127.0.0.1'

      TELNETCONSOLE_PORT = [6023, ]

          ```

      说明:当爬虫运行时间很长,但是你又想知道当前爬虫的运行状态时,可以使用telnet命令来连接特定端口查看

    17、SCHEDULER调度器

    # 爬取时,0表示深度优先Lifo(默认),1表示广度优先FiFo
    
    # 后进先出,深度优先
    DEPTH_PRIORITY = 0
    SCHEDULER_DISK_QUEUE = 'scrapy.squeue.PickleLifoDiskQueue'
    SCHEDULER_MEMORY_QUEUE = 'scrapy.squeue.LifoMemoryQueue'
    
    
    # 先进先出,广度优先
    DEPTH_PRIORITY = 1
    SCHEDULER_DISK_QUEUE = 'scrapy.squeue.PickleFifoDiskQueue'
    SCHEDULER_MEMORY_QUEUE = 'scrapy.squeue.FifoMemoryQueue'
    
    
    # 调度器队列
    # from scrapy.core.scheduler.Scheduler
    SCHEDULER = 'scrapy.core.scheduler.Scheduler'

    18、访问url去重

      DUPEFILTER_CLASS = 'step8_king.duplication.RepeatUrl'

  • 相关阅读:
    IEEE 网址
    知乎上非常棒的机器学习专栏
    怎样认识比你优秀的人并和他们成为朋友?
    影藏铜皮,显示原点与更改
    PCB检查事项,生成钻孔表
    布局-同样模块复用
    制作DIP Package及DIP焊盘制作,不规则焊盘制作
    制作SMD Package及SMD焊盘制作
    导入网络表
    导入DXF文件
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12877058.html
Copyright © 2011-2022 走看看