📜  Scrapy – 设置(1)

📅  最后修改于: 2023-12-03 15:05:05.971000             🧑  作者: Mango

Scrapy – 设置

Scrapy是一个强大的爬虫框架,它允许您构建高效的爬虫,通过简单的步骤来抽取所需数据。在本文中,我们将讨论Scrapy中的设置。

Scrapy设置概述

Scrapy提供了一个名为Settings的对象,它是一个包含所有爬虫设置的字典。Scrapy设置分为3类:

  • 全局设置:应用于所有爬虫
  • 项目设置:只是应用于当前项目中的爬虫
  • 爬虫设置:一个特定爬虫的设置
Scrapy项目设置

我们可以使用Settings实例来访问项目设置。默认情况下,Scrapy提供了一个名为settings.py的文件,可以在其中定义项目级别的默认设置。

BOT_NAME = 'mybot'

SPIDER_MODULES = ['mybot.spiders']
NEWSPIDER_MODULE = 'mybot.spiders'

ROBOTSTXT_OBEY = True

ITEM_PIPELINES = {
    'mybot.pipelines.MyPipeline': 100,
}

以上是一个示例文件,它定义了BOT_NAME、SPIDER_MODULES、NEWSPIDER_MODULE、ROBOTSTXT_OBEY和ITEM_PIPELINES等设置。

Scrapy全局设置

全局设置可以通过编写Scrapy的配置文件来配置。下面是一个例子:

[deploy]
url = http://localhost:6800/
project = default

[settings]
default = myproject.settings

[scrapyd]
bind_address = 127.0.0.1
bind_port = 6800
Scrapy爬虫设置

我们可以在爬虫中使用settings属性来访问爬虫设置。示例如下:

import scrapy


class MySpider(scrapy.Spider):
    name = 'myspider'
    start_urls = ['https://www.example.com'] 

    custom_settings = {
        'DOWNLOAD_DELAY': 1,
        'CONCURRENT_REQUESTS_PER_DOMAIN': 2
    }

    def parse(self, response):
        # ...

以上代码示例中,我们定义了自定义爬虫设置DOWNLOAD_DELAY和CONCURRENT_REQUESTS_PER_DOMAIN。

Scrapy命令行设置

使用Scrapy命令行工具时,您可以使用-c参数来覆盖默认设置。下面是一个示例:

scrapy crawl myspider -c DOWNLOAD_DELAY=2
结论

在最初的设置中正确设置将确保您的爬虫可以提取所需数据。在本文中,我们讨论了Scrapy中的所有设置。 Scrapy的设置特别重要,因此务必记住它们。