在 Scrapy 中,可以通过在命令行中传递参数来动态地配置爬虫。使用 -a 或者 --set 命令行选项可以设置爬虫的相关参数。
启动命令:keyword是传入参数
scrapy crawl search_spider -a keyword=花西子
在 Scrapy 的代码中通过修改 init() 或者 start_requests() 函数从外部获取这些参数。
1.修改 init()
def __init__(self, keyword=None, *args, **kwargs):
super(SearchSpider, self).__init__(*args, **kwargs)
self.keyword = keyword
2.通过函数从外部获取这些参数
def start_requests(self):
url = f"https://example.com/search?keyword={self.keyword}"
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
# 解析响应内容
pass
注意:传递给 Spiders 的参数都是字符串形式。如果要传递其它类型的参数,需要在代码中将其转换为指定类型的值。