📅  最后修改于: 2023-12-03 15:05:05.971000             🧑  作者: Mango
Scrapy是一个强大的爬虫框架,它允许您构建高效的爬虫,通过简单的步骤来抽取所需数据。在本文中,我们将讨论Scrapy中的设置。
Scrapy提供了一个名为Settings的对象,它是一个包含所有爬虫设置的字典。Scrapy设置分为3类:
我们可以使用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的配置文件来配置。下面是一个例子:
[deploy]
url = http://localhost:6800/
project = default
[settings]
default = myproject.settings
[scrapyd]
bind_address = 127.0.0.1
bind_port = 6800
我们可以在爬虫中使用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命令行工具时,您可以使用-c参数来覆盖默认设置。下面是一个示例:
scrapy crawl myspider -c DOWNLOAD_DELAY=2
在最初的设置中正确设置将确保您的爬虫可以提取所需数据。在本文中,我们讨论了Scrapy中的所有设置。 Scrapy的设置特别重要,因此务必记住它们。