📅  最后修改于: 2023-12-03 15:20:02.039000             🧑  作者: Mango
Scrapy 是一个强大的 Python 爬虫框架,它提供了一系列的功能使得爬取网站变得容易。其中一个很有用的功能是 custom_settings。
Scrapy 的 Spider
类包含一个 custom_settings
变量,它是一个字典类型,可以用于覆盖全局设置(global settings)的值。换句话说,它允许你在每个 spider 中重新定义 Scrapy 的默认设置。
要使用 custom_settings
,只需要在 spider 中定义一个类变量,如下所示:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'DOWNLOAD_DELAY': 1,
'CONCURRENT_REQUESTS': 4,
}
# start_requests, parse 等方法等等
在这个例子中,custom_settings
变量被定义为一个字典,它包含两个键值对,分别是 DOWNLOAD_DELAY
和 CONCURRENT_REQUESTS
。在这个 spider 中,这些值将覆盖 Scrapy 的默认设置。
下面是 custom_settings 中经常使用的一些设置,包括:
DOWNLOAD_DELAY
:下载每个页面之间的延迟。默认值为 0 秒。
CONCURRENT_REQUESTS
:同时进行的请求数量。默认值为 16。
ROBOTSTXT_OBEY
:如果设置为 True,则 Scrapy 会自动遵守 robots.txt。默认值为 True。
USER_AGENT
:用于伪装浏览器的 user agent 字符串。默认情况下,Scrapy 使用其自己的 user agent 字符串。
COOKIES_ENABLED
:是否启用 cookie。默认为 True。
当你在 spider 中定义一个 custom_settings
变量时,它将覆盖 Scrapy 的全局设置(global settings)中相应的变量。但是,如果你在命令行中传递了一个值(例如,使用 -s
),它将覆盖 custom_settings
。
在 Scrapy 中使用 custom_settings
可以让您定制每个爬虫的设置,使其更适合你的需求。因此,在编写爬虫时,请务必了解这个有用的功能。