Spider参数使用-a选项通过爬行命令传递。
传参方式(一)
通过在初始化__init__
方法中指定关键字参数
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
def __init__(self, category=None, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
self.start_urls = ['http://www.example.com/categories/%s' % category]
# ...
传参方式(二)
通过实例对象的属性的方式传递
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
def start_requests(self):
yield scrapy.Request('http://www.example.com/categories/%s' % self.category)
spider参数只是字符串。spider不会自己进行任何解析。如果要从命令行设置start_urls
属性,则必须将其解析为列表。加载并将其设置为对象的属性。