且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python:Scrapy传入自定义参数运行

更新时间:2022-08-22 14:32:26

运行命令

# 运行爬虫
$ 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中传入自定义参数