运行命令
# 运行爬虫
$ scrapy crawl spiderName
# 传入自定义参数运行
$ scrapy crawl spiderName -a parameter1=value1 -a parameter2=value2
示例:通过3种方式获取传入的参数
# -*- coding: utf-8 -*-
import scrapy
from scrapy import cmdline
class BaiduSpider(scrapy.Spider):
name = 'baidu_spider'
start_urls = ['https://www.baidu.com/']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# 方式一: 在init方法中获取参数
num = kwargs.get('num')
print('init num: ', num)
def parse(self, response):
# 方式二: 在实例方法中获取参数
# 如果没有传参数会报错: AttributeError: 'BaiduSpider' object has no attribute 'num'
print('self.num: ', self.num)
# 方式三: 在实例方法中获取参数
num = getattr(self, 'num', False)
print('getattr: ', num)
if __name__ == '__main__':
cmdline.execute("scrapy crawl baidu_spider -a num=10".split())
参考 Scrapy中传入自定义参数